sudo apt-get install linux-source linux-headers-` uname -r`
sudo tar xjf /usr/src/linux-source-*.tar.bz2
cd linux-source-*/drivers/usb/gadget
@@ -349,12 +523,12 @@ loading the module, you maybe want to check out Usage
The USB CCID Emulator has various command line options to customize the appearance
on the USB host. In order to run the USB CCID Emulator GadgetFS must be loaded
-and mounted. The USB CCID Emulator is compatible with the unix driver libccid
-and the Windows USB CCID driver . PIN commands are supported if implemented
+and mounted. The USB CCID Emulator is compatible with the unix driver libccid
+and the Windows USB CCID driver . PIN commands are supported if implemented
by the driver.
New in version 0.7: USB CCID Emulator now supports the boxing commands defined in BSI TR-03119
-1.3 .
+1.3 .
Usage: ccid-emulator [OPTION]...
Emulate a USB CCID compliant smart card reader
@@ -396,15 +570,18 @@ more than welcome! Please use our https://github.com/frankmorgner/OpenSC
3
-
https://ccid.apdu.fr/
+https://www.openssl.org
4
-
http://msdn.microsoft.com/en-us/windows/hardware/gg487509
+https://ccid.apdu.fr/
5
+
http://msdn.microsoft.com/en-us/windows/hardware/gg487509
+
+
6
http://wiki.openmoko.org/wiki/Building_Gadget_USB_Module
-
6 (1 ,2 )
+
7 (1 ,2 )
https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr03119/index_htm.html
@@ -423,7 +600,7 @@ more than welcome! Please use our
-
Welcome to the Virtual Smart Card Architecture documentation! — vsmartcard 2021-04-28 documentation
+
Welcome to the Virtual Smart Card Architecture documentation! — vsmartcard 2023-09-27 documentation
@@ -12,10 +12,6 @@
-
-
-
-
@@ -23,6 +19,10 @@
+
+
+
+
@@ -132,15 +132,40 @@
-
+
Welcome to the Virtual Smart Card Architecture documentation!
Welcome to the Virtual Smart Card Architecture. Virtual Smart Card Architecture is an umbrella project for various
projects concerned with the emulation of different types of smart card readers
or smart cards themselves.
-
Currently the following projects are part of Virtual Smart Card Architecture:
-
-
-
+
+
+
Download
You can download the latest release of the Virtual Smart Card Architecture here . Older releases are
@@ -212,7 +237,7 @@ location.
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/objects.inv b/docs/objects.inv
index f26e99b..2fb98a8 100644
Binary files a/docs/objects.inv and b/docs/objects.inv differ
diff --git a/docs/pcsc-relay/README.html b/docs/pcsc-relay/README.html
index c6929e4..89e1f14 100644
--- a/docs/pcsc-relay/README.html
+++ b/docs/pcsc-relay/README.html
@@ -4,7 +4,7 @@
-
PC/SC Relay — vsmartcard 2021-04-28 documentation
+
PC/SC Relay — vsmartcard 2023-09-27 documentation
@@ -12,10 +12,6 @@
-
-
-
-
@@ -24,6 +20,10 @@
+
+
+
+
@@ -146,7 +146,7 @@
-
+
PC/SC Relay
@@ -166,7 +166,7 @@
Welcome to PC/SC Relay. The purpose of PC/SC Relay is to relay a smart
card using an contact-less interface. Currently the following contact-less
-emulators are supported:
+
emulators are supported:
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
-relayed to one of the following:
+relayed to one of the following
connectors :
to a real 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
@@ -183,14 +183,147 @@ contact-based or contact-less.
smart card’s native interface is used and (despite its name) PC/SC Relay
does not need to access PC/SC in this case.
-
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 Virtual Smart Card
to completely emulate an ISO/IEC 14443 smart card.
-
PC/SC Relay has the following dependencies:
@@ -209,6 +342,8 @@ but it generally concerns all contact-less smart cards.
still available on Sourceforge .
Alternatively, you can clone our git repository:
git clone https://github.com/frankmorgner/vsmartcard.git
+cd vsmartcard
+git submodule update --init --recursive
@@ -420,7 +555,7 @@ more than welcome! Please use our
-
Remote Smart Card Reader — vsmartcard 2021-04-28 documentation
+
Remote Smart Card Reader — vsmartcard 2023-09-27 documentation
@@ -12,10 +12,6 @@
-
-
-
-
@@ -24,6 +20,10 @@
+
+
+
+
@@ -138,7 +138,7 @@
-
+
Remote Smart Card Reader
@@ -157,8 +157,26 @@
smartcard reader. On the host computer a special smart card driver,
vpcd , must
be installed. The app establishes a connection to
vpcd over the network when a
contact-less card is detected.
-
The Remote Smart Card Reader has the following dependencies:
@@ -171,8 +189,30 @@ requires permission to access the camera
For remotely accessing a traditional smart card reader on one computer from an
other computer, the Virtual Smart Card in relay mode can be used:
-
Note
@@ -228,7 +268,7 @@ more than welcome! Please use our
-
Search — vsmartcard 2021-04-28 documentation
+
Search — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,10 @@
-
-
-
-
-
-
+
+
@@ -29,6 +23,10 @@
+
+
+
+
@@ -121,7 +119,7 @@
-
+
Search
@@ -145,9 +143,9 @@
-
-
+
+
@@ -164,7 +162,7 @@
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/searchindex.js b/docs/searchindex.js
index 4286fb3..5189e16 100644
--- a/docs/searchindex.js
+++ b/docs/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["ACardEmulator/README","TCardEmulator/README","ccid/README","index","pcsc-relay/README","remote-reader/README","virtualsmartcard/README","virtualsmartcard/api","virtualsmartcard/api/virtualsmartcard","virtualsmartcard/api/virtualsmartcard.CardGenerator","virtualsmartcard/api/virtualsmartcard.ConstantDefinitions","virtualsmartcard/api/virtualsmartcard.CryptoUtils","virtualsmartcard/api/virtualsmartcard.SEutils","virtualsmartcard/api/virtualsmartcard.SWutils","virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem","virtualsmartcard/api/virtualsmartcard.SmartcardSAM","virtualsmartcard/api/virtualsmartcard.TLVutils","virtualsmartcard/api/virtualsmartcard.VirtualSmartcard","virtualsmartcard/api/virtualsmartcard.cards","virtualsmartcard/api/virtualsmartcard.cards.HandlerTest","virtualsmartcard/api/virtualsmartcard.cards.Relay","virtualsmartcard/api/virtualsmartcard.cards.RelayMiddleman","virtualsmartcard/api/virtualsmartcard.cards.cryptoflex","virtualsmartcard/api/virtualsmartcard.cards.ePass","virtualsmartcard/api/virtualsmartcard.cards.nPA","virtualsmartcard/api/virtualsmartcard.tests","virtualsmartcard/api/virtualsmartcard.tests.CardGenerator_test","virtualsmartcard/api/virtualsmartcard.tests.CryptoUtils_test","virtualsmartcard/api/virtualsmartcard.tests.SmartcardSAM_test","virtualsmartcard/api/virtualsmartcard.tests.utils_test","virtualsmartcard/api/virtualsmartcard.utils"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinxcontrib.bibtex":7,sphinx:56},filenames:["ACardEmulator/README.txt","TCardEmulator/README.txt","ccid/README.txt","index.txt","pcsc-relay/README.txt","remote-reader/README.txt","virtualsmartcard/README.txt","virtualsmartcard/api.txt","virtualsmartcard/api/virtualsmartcard.txt","virtualsmartcard/api/virtualsmartcard.CardGenerator.txt","virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.txt","virtualsmartcard/api/virtualsmartcard.CryptoUtils.txt","virtualsmartcard/api/virtualsmartcard.SEutils.txt","virtualsmartcard/api/virtualsmartcard.SWutils.txt","virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.txt","virtualsmartcard/api/virtualsmartcard.SmartcardSAM.txt","virtualsmartcard/api/virtualsmartcard.TLVutils.txt","virtualsmartcard/api/virtualsmartcard.VirtualSmartcard.txt","virtualsmartcard/api/virtualsmartcard.cards.txt","virtualsmartcard/api/virtualsmartcard.cards.HandlerTest.txt","virtualsmartcard/api/virtualsmartcard.cards.Relay.txt","virtualsmartcard/api/virtualsmartcard.cards.RelayMiddleman.txt","virtualsmartcard/api/virtualsmartcard.cards.cryptoflex.txt","virtualsmartcard/api/virtualsmartcard.cards.ePass.txt","virtualsmartcard/api/virtualsmartcard.cards.nPA.txt","virtualsmartcard/api/virtualsmartcard.tests.txt","virtualsmartcard/api/virtualsmartcard.tests.CardGenerator_test.txt","virtualsmartcard/api/virtualsmartcard.tests.CryptoUtils_test.txt","virtualsmartcard/api/virtualsmartcard.tests.SmartcardSAM_test.txt","virtualsmartcard/api/virtualsmartcard.tests.utils_test.txt","virtualsmartcard/api/virtualsmartcard.utils.txt"],objects:{"virtualsmartcard.CardGenerator":{CardGenerator:[9,1,1,""]},"virtualsmartcard.CardGenerator.CardGenerator":{__generate_cryptoflex:[9,2,1,""],__generate_ePass:[9,2,1,""],__generate_iso_card:[9,2,1,""],__generate_nPA:[9,2,1,""],generateCard:[9,2,1,""],getCard:[9,2,1,""],readDatagroups:[9,2,1,""],setCard:[9,2,1,""]},"virtualsmartcard.CryptoUtils":{_makesalt:[11,3,1,""],append_padding:[11,3,1,""],calculate_MAC:[11,3,1,""],cipher:[11,3,1,""],crypto_checksum:[11,3,1,""],decrypt:[11,3,1,""],encrypt:[11,3,1,""],get_cipher:[11,3,1,""],get_cipher_blocklen:[11,3,1,""],get_cipher_keylen:[11,3,1,""],hash:[11,3,1,""],operation_on_string:[11,3,1,""],strip_padding:[11,3,1,""]},"virtualsmartcard.SEutils":{ControlReferenceTemplate:[12,1,1,""],Security_Environment:[12,1,1,""]},"virtualsmartcard.SEutils.ControlReferenceTemplate":{__replace_tag:[12,2,1,""],__set_algo:[12,2,1,""],__set_iv:[12,2,1,""],__set_key:[12,2,1,""],parse_SE_config:[12,2,1,""],to_string:[12,2,1,""]},"virtualsmartcard.SEutils.Security_Environment":{_set_SE:[12,2,1,""],compute_cryptographic_checksum:[12,2,1,""],compute_digital_signature:[12,2,1,""],decipher:[12,2,1,""],encipher:[12,2,1,""],generate_public_key_pair:[12,2,1,""],hash:[12,2,1,""],manage_security_environment:[12,2,1,""],parse_SM_CAPDU:[12,2,1,""],perform_security_operation:[12,2,1,""],protect_response:[12,2,1,""],verify_certificate:[12,2,1,""],verify_cryptographic_checksum:[12,2,1,""],verify_digital_signature:[12,2,1,""]},"virtualsmartcard.SWutils":{SwError:[13,4,1,""]},"virtualsmartcard.SWutils.SwError":{args:[13,5,1,""],with_traceback:[13,2,1,""]},"virtualsmartcard.SmartcardFilesystem":{DF:[14,1,1,""],EF:[14,1,1,""],File:[14,1,1,""],MF:[14,1,1,""],Record:[14,1,1,""],RecordStructureEF:[14,1,1,""],TransparentStructureEF:[14,1,1,""],get_indexes:[14,3,1,""],getfile_byrefdataobj:[14,3,1,""],isEqual:[14,3,1,""],make_property:[14,3,1,""],prettyprint_anything:[14,3,1,""],walk:[14,3,1,""],write:[14,3,1,""]},"virtualsmartcard.SmartcardFilesystem.DF":{append:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],content:[14,2,1,""],data:[14,2,1,""],decrypt:[14,2,1,""],dfname:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],remove:[14,2,1,""],select:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.EF":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.File":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.MF":{_selectFile:[14,2,1,""],append:[14,2,1,""],appendRecord:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],content:[14,2,1,""],create:[14,2,1,""],createFile:[14,2,1,""],current:[14,2,1,""],currentDF:[14,2,1,""],currentEF:[14,2,1,""],data:[14,2,1,""],dataObjectHandlingDecodeEncapsulated:[14,2,1,""],dataObjectHandlingDecodePlain:[14,2,1,""],dataUnitsDecodeEncapsulated:[14,2,1,""],dataUnitsDecodePlain:[14,2,1,""],decrypt:[14,2,1,""],deleteFile:[14,2,1,""],dfname:[14,2,1,""],encodeFileControlParameter:[14,2,1,""],encrypt:[14,2,1,""],eraseBinaryEncapsulated:[14,2,1,""],eraseBinaryPlain:[14,2,1,""],eraseRecord:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],firstSFT:[14,2,1,""],getDataEncapsulated:[14,2,1,""],getDataPlain:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],makeFirstSoftwareFunctionTable:[14,2,1,""],makeSecondSoftwareFunctionTable:[14,2,1,""],named_dfs:[14,2,1,""],parent:[14,2,1,""],putDataEncapsulated:[14,2,1,""],putDataPlain:[14,2,1,""],putdata:[14,2,1,""],readBinaryEncapsulated:[14,2,1,""],readBinaryPlain:[14,2,1,""],readRecordEncapsulated:[14,2,1,""],readRecordPlain:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],recordHandlingDecode:[14,2,1,""],remove:[14,2,1,""],searchBinaryEncapsulated:[14,2,1,""],searchBinaryPlain:[14,2,1,""],secondSFT:[14,2,1,""],select:[14,2,1,""],selectFile:[14,2,1,""],simpletlv_data:[14,2,1,""],updateBinaryEncapsulated:[14,2,1,""],updateBinaryPlain:[14,2,1,""],updateRecordEncapsulated:[14,2,1,""],updateRecordPlain:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writeBinaryEncapsulated:[14,2,1,""],writeBinaryPlain:[14,2,1,""],writeRecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.Record":{data:[14,2,1,""],identifier:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.RecordStructureEF":{__getRecords:[14,2,1,""],__getRecordsByIdentifier:[14,2,1,""],__getRecordsByNumber:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],eraserecord:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],hasFixedRecordSize:[14,2,1,""],hasSimpleTlv:[14,2,1,""],isCyclic:[14,2,1,""],lifecycle:[14,2,1,""],maxrecordsize:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],recordpointer:[14,2,1,""],records:[14,2,1,""],resetRecordPointer:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.TransparentStructureEF":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardSAM":{SAM:[15,1,1,""],get_referenced_cipher:[15,3,1,""]},"virtualsmartcard.SmartcardSAM.SAM":{FSdecrypt:[15,2,1,""],FSencrypt:[15,2,1,""],_get_referenced_key:[15,2,1,""],change_reference_data:[15,2,1,""],erase_SE:[15,2,1,""],external_authenticate:[15,2,1,""],generate_public_key_pair:[15,2,1,""],get_card_number:[15,2,1,""],get_challenge:[15,2,1,""],internal_authenticate:[15,2,1,""],manage_security_environment:[15,2,1,""],mutual_authenticate:[15,2,1,""],parse_SM_CAPDU:[15,2,1,""],perform_security_operation:[15,2,1,""],protect_result:[15,2,1,""],restore_SE:[15,2,1,""],set_MF:[15,2,1,""],set_asym_algorithm:[15,2,1,""],store_SE:[15,2,1,""],verify:[15,2,1,""]},"virtualsmartcard.TLVutils":{bertlv_pack:[16,3,1,""],bertlv_unpack:[16,3,1,""],decodeDiscretionaryDataObjects:[16,3,1,""],decodeExtendedHeaderList:[16,3,1,""],decodeHeaderList:[16,3,1,""],decodeOffsetDataObjects:[16,3,1,""],decodeTagList:[16,3,1,""],encodeDataOffsetObjects:[16,3,1,""],encodeDiscretionaryDataObjects:[16,3,1,""],encodebertlvDatalist:[16,3,1,""],pack:[16,3,1,""],simpletlv_pack:[16,3,1,""],simpletlv_unpack:[16,3,1,""],tlv_find_tag:[16,3,1,""],tlv_find_tags:[16,3,1,""],tlv_unpack:[16,3,1,""],unpack:[16,3,1,""]},"virtualsmartcard.VirtualSmartcard":{Iso7816OS:[17,1,1,""],SmartcardOS:[17,1,1,""],VirtualICC:[17,1,1,""],loadMitMFromPath:[17,3,1,""]},"virtualsmartcard.VirtualSmartcard.Iso7816OS":{SAM:[17,2,1,""],execute:[17,2,1,""],formatResult:[17,2,1,""],getATR:[17,2,1,""],getResponse:[17,2,1,""],makeATR:[17,2,1,""],makeThirdSoftwareFunctionTable:[17,2,1,""],mf:[17,2,1,""],powerDown:[17,2,1,""],powerUp:[17,2,1,""],reset:[17,2,1,""],seekable:[17,2,1,""]},"virtualsmartcard.VirtualSmartcard.SmartcardOS":{execute:[17,2,1,""],getATR:[17,2,1,""],powerDown:[17,2,1,""],powerUp:[17,2,1,""],reset:[17,2,1,""]},"virtualsmartcard.VirtualSmartcard.VirtualICC":{__recvFromVPICC:[17,2,1,""],__sendToVPICC:[17,2,1,""],connectToPort:[17,2,1,""],openPort:[17,2,1,""],run:[17,2,1,""],stop:[17,2,1,""]},"virtualsmartcard.cards":{HandlerTest:[19,0,0,"-"],Relay:[20,0,0,"-"],RelayMiddleman:[21,0,0,"-"],cryptoflex:[22,0,0,"-"],ePass:[23,0,0,"-"]},"virtualsmartcard.cards.HandlerTest":{HandlerTestOS:[19,1,1,""]},"virtualsmartcard.cards.HandlerTest.HandlerTestOS":{__output_from_le:[19,2,1,""],execute:[19,2,1,""],getATR:[19,2,1,""],powerDown:[19,2,1,""],powerUp:[19,2,1,""],reset:[19,2,1,""]},"virtualsmartcard.cards.Relay":{RelayOS:[20,1,1,""]},"virtualsmartcard.cards.Relay.RelayOS":{cleanup:[20,2,1,""],execute:[20,2,1,""],getATR:[20,2,1,""],powerDown:[20,2,1,""],powerUp:[20,2,1,""],reset:[20,2,1,""]},"virtualsmartcard.cards.RelayMiddleman":{RelayMiddleman:[21,1,1,""]},"virtualsmartcard.cards.RelayMiddleman.RelayMiddleman":{handleInPDU:[21,2,1,""],handleOutPDU:[21,2,1,""]},"virtualsmartcard.cards.cryptoflex":{CryptoflexMF:[22,1,1,""],CryptoflexOS:[22,1,1,""],CryptoflexSAM:[22,1,1,""],CryptoflexSE:[22,1,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexMF":{_selectFile:[22,2,1,""],append:[22,2,1,""],appendRecord:[22,2,1,""],appendrecord:[22,2,1,""],bertlv_data:[22,2,1,""],content:[22,2,1,""],create:[22,2,1,""],createFile:[22,2,1,""],current:[22,2,1,""],currentDF:[22,2,1,""],currentEF:[22,2,1,""],data:[22,2,1,""],dataObjectHandlingDecodeEncapsulated:[22,2,1,""],dataObjectHandlingDecodePlain:[22,2,1,""],dataUnitsDecodeEncapsulated:[22,2,1,""],dataUnitsDecodePlain:[22,2,1,""],decrypt:[22,2,1,""],deleteFile:[22,2,1,""],dfname:[22,2,1,""],encodeFileControlParameter:[22,2,1,""],encrypt:[22,2,1,""],eraseBinaryEncapsulated:[22,2,1,""],eraseBinaryPlain:[22,2,1,""],eraseRecord:[22,2,1,""],erasebinary:[22,2,1,""],fid:[22,2,1,""],filedescriptor:[22,2,1,""],firstSFT:[22,2,1,""],getDataEncapsulated:[22,2,1,""],getDataPlain:[22,2,1,""],getMF:[22,2,1,""],getdata:[22,2,1,""],getpath:[22,2,1,""],lifecycle:[22,2,1,""],makeFirstSoftwareFunctionTable:[22,2,1,""],makeSecondSoftwareFunctionTable:[22,2,1,""],named_dfs:[22,2,1,""],parent:[22,2,1,""],putDataEncapsulated:[22,2,1,""],putDataPlain:[22,2,1,""],putdata:[22,2,1,""],readBinaryEncapsulated:[22,2,1,""],readBinaryPlain:[22,2,1,""],readRecordEncapsulated:[22,2,1,""],readRecordPlain:[22,2,1,""],readbinary:[22,2,1,""],readrecord:[22,2,1,""],recordHandlingDecode:[22,2,1,""],remove:[22,2,1,""],searchBinaryEncapsulated:[22,2,1,""],searchBinaryPlain:[22,2,1,""],secondSFT:[22,2,1,""],select:[22,2,1,""],selectFile:[22,2,1,""],simpletlv_data:[22,2,1,""],updateBinaryEncapsulated:[22,2,1,""],updateBinaryPlain:[22,2,1,""],updateRecordEncapsulated:[22,2,1,""],updateRecordPlain:[22,2,1,""],updatebinary:[22,2,1,""],updaterecord:[22,2,1,""],writeBinaryEncapsulated:[22,2,1,""],writeBinaryPlain:[22,2,1,""],writeRecord:[22,2,1,""],writebinary:[22,2,1,""],writerecord:[22,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexOS":{SAM:[22,2,1,""],execute:[22,2,1,""],formatResult:[22,2,1,""],getATR:[22,2,1,""],getResponse:[22,2,1,""],makeATR:[22,2,1,""],makeThirdSoftwareFunctionTable:[22,2,1,""],mf:[22,2,1,""],powerDown:[22,2,1,""],powerUp:[22,2,1,""],reset:[22,2,1,""],seekable:[22,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSAM":{FSdecrypt:[22,2,1,""],FSencrypt:[22,2,1,""],_get_referenced_key:[22,2,1,""],change_reference_data:[22,2,1,""],erase_SE:[22,2,1,""],external_authenticate:[22,2,1,""],generate_public_key_pair:[22,2,1,""],get_card_number:[22,2,1,""],get_challenge:[22,2,1,""],internal_authenticate:[22,2,1,""],manage_security_environment:[22,2,1,""],mutual_authenticate:[22,2,1,""],parse_SM_CAPDU:[22,2,1,""],perform_security_operation:[22,2,1,""],pezorform_security_operation:[22,2,1,""],protect_result:[22,2,1,""],restore_SE:[22,2,1,""],set_MF:[22,2,1,""],set_asym_algorithm:[22,2,1,""],store_SE:[22,2,1,""],verify:[22,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSE":{_set_SE:[22,2,1,""],compute_cryptographic_checksum:[22,2,1,""],compute_digital_signature:[22,2,1,""],decipher:[22,2,1,""],encipher:[22,2,1,""],generate_public_key_pair:[22,2,1,""],hash:[22,2,1,""],manage_security_environment:[22,2,1,""],parse_SM_CAPDU:[22,2,1,""],perform_security_operation:[22,2,1,""],protect_response:[22,2,1,""],verify_certificate:[22,2,1,""],verify_cryptographic_checksum:[22,2,1,""],verify_digital_signature:[22,2,1,""]},"virtualsmartcard.cards.ePass":{PassportSAM:[23,1,1,""],ePass_SE:[23,1,1,""]},"virtualsmartcard.cards.ePass.PassportSAM":{FSdecrypt:[23,2,1,""],FSencrypt:[23,2,1,""],__computeKeys:[23,2,1,""],_get_referenced_key:[23,2,1,""],change_reference_data:[23,2,1,""],derive_key:[23,2,1,""],erase_SE:[23,2,1,""],external_authenticate:[23,2,1,""],generate_public_key_pair:[23,2,1,""],get_card_number:[23,2,1,""],get_challenge:[23,2,1,""],internal_authenticate:[23,2,1,""],manage_security_environment:[23,2,1,""],mutual_authenticate:[23,2,1,""],parse_SM_CAPDU:[23,2,1,""],perform_security_operation:[23,2,1,""],protect_result:[23,2,1,""],restore_SE:[23,2,1,""],set_MF:[23,2,1,""],set_asym_algorithm:[23,2,1,""],store_SE:[23,2,1,""],verify:[23,2,1,""]},"virtualsmartcard.cards.ePass.ePass_SE":{_set_SE:[23,2,1,""],compute_cryptographic_checksum:[23,2,1,""],compute_digital_signature:[23,2,1,""],decipher:[23,2,1,""],encipher:[23,2,1,""],generate_public_key_pair:[23,2,1,""],hash:[23,2,1,""],manage_security_environment:[23,2,1,""],parse_SM_CAPDU:[23,2,1,""],perform_security_operation:[23,2,1,""],protect_response:[23,2,1,""],verify_certificate:[23,2,1,""],verify_cryptographic_checksum:[23,2,1,""],verify_digital_signature:[23,2,1,""]},"virtualsmartcard.tests":{CardGenerator_test:[26,0,0,"-"],CryptoUtils_test:[27,0,0,"-"],SmartcardSAM_test:[28,0,0,"-"],utils_test:[29,0,0,"-"]},"virtualsmartcard.tests.CardGenerator_test":{CryptoflexGeneratorTest:[26,1,1,""],ISO7816GeneratorTest:[26,1,1,""],TestNPACardGenerator:[26,1,1,""]},"virtualsmartcard.tests.CardGenerator_test.CryptoflexGeneratorTest":{_addExpectedFailure:[26,2,1,""],_addSkip:[26,2,1,""],_addUnexpectedSuccess:[26,2,1,""],_baseAssertEqual:[26,2,1,""],_callCleanup:[26,2,1,""],_callSetUp:[26,2,1,""],_callTearDown:[26,2,1,""],_callTestMethod:[26,2,1,""],_classSetupFailed:[26,5,1,""],_class_cleanups:[26,5,1,""],_deprecate:[26,2,1,""],_diffThreshold:[26,5,1,""],_feedErrorsToResult:[26,2,1,""],_formatMessage:[26,2,1,""],_getAssertEqualityFunc:[26,2,1,""],_truncateMessage:[26,2,1,""],addClassCleanup:[26,2,1,""],addCleanup:[26,2,1,""],addTypeEqualityFunc:[26,2,1,""],assertAlmostEqual:[26,2,1,""],assertAlmostEquals:[26,2,1,""],assertCountEqual:[26,2,1,""],assertDictContainsSubset:[26,2,1,""],assertDictEqual:[26,2,1,""],assertEqual:[26,2,1,""],assertEquals:[26,2,1,""],assertFalse:[26,2,1,""],assertGreater:[26,2,1,""],assertGreaterEqual:[26,2,1,""],assertIn:[26,2,1,""],assertIs:[26,2,1,""],assertIsInstance:[26,2,1,""],assertIsNone:[26,2,1,""],assertIsNot:[26,2,1,""],assertIsNotNone:[26,2,1,""],assertLess:[26,2,1,""],assertLessEqual:[26,2,1,""],assertListEqual:[26,2,1,""],assertLogs:[26,2,1,""],assertMultiLineEqual:[26,2,1,""],assertNotAlmostEqual:[26,2,1,""],assertNotAlmostEquals:[26,2,1,""],assertNotEqual:[26,2,1,""],assertNotEquals:[26,2,1,""],assertNotIn:[26,2,1,""],assertNotIsInstance:[26,2,1,""],assertNotRegex:[26,2,1,""],assertNotRegexpMatches:[26,2,1,""],assertRaises:[26,2,1,""],assertRaisesRegex:[26,2,1,""],assertRaisesRegexp:[26,2,1,""],assertRegex:[26,2,1,""],assertRegexpMatches:[26,2,1,""],assertSequenceEqual:[26,2,1,""],assertSetEqual:[26,2,1,""],assertTrue:[26,2,1,""],assertTupleEqual:[26,2,1,""],assertWarns:[26,2,1,""],assertWarnsRegex:[26,2,1,""],assert_:[26,2,1,""],card_type:[26,5,1,""],countTestCases:[26,2,1,""],debug:[26,2,1,""],defaultTestResult:[26,2,1,""],doClassCleanups:[26,2,1,""],doCleanups:[26,2,1,""],fail:[26,2,1,""],failIf:[26,2,1,""],failIfAlmostEqual:[26,2,1,""],failIfEqual:[26,2,1,""],failUnless:[26,2,1,""],failUnlessAlmostEqual:[26,2,1,""],failUnlessEqual:[26,2,1,""],failUnlessRaises:[26,2,1,""],failureException:[26,5,1,""],id:[26,2,1,""],longMessage:[26,5,1,""],maxDiff:[26,5,1,""],run:[26,2,1,""],setUp:[26,2,1,""],setUpClass:[26,2,1,""],shortDescription:[26,2,1,""],skipTest:[26,2,1,""],subTest:[26,2,1,""],tearDown:[26,2,1,""],tearDownClass:[26,2,1,""],test_card_creation:[26,2,1,""],test_get_and_set_card:[26,2,1,""]},"virtualsmartcard.tests.CardGenerator_test.ISO7816GeneratorTest":{_addExpectedFailure:[26,2,1,""],_addSkip:[26,2,1,""],_addUnexpectedSuccess:[26,2,1,""],_baseAssertEqual:[26,2,1,""],_callCleanup:[26,2,1,""],_callSetUp:[26,2,1,""],_callTearDown:[26,2,1,""],_callTestMethod:[26,2,1,""],_classSetupFailed:[26,5,1,""],_class_cleanups:[26,5,1,""],_deprecate:[26,2,1,""],_diffThreshold:[26,5,1,""],_feedErrorsToResult:[26,2,1,""],_formatMessage:[26,2,1,""],_getAssertEqualityFunc:[26,2,1,""],_truncateMessage:[26,2,1,""],addClassCleanup:[26,2,1,""],addCleanup:[26,2,1,""],addTypeEqualityFunc:[26,2,1,""],assertAlmostEqual:[26,2,1,""],assertAlmostEquals:[26,2,1,""],assertCountEqual:[26,2,1,""],assertDictContainsSubset:[26,2,1,""],assertDictEqual:[26,2,1,""],assertEqual:[26,2,1,""],assertEquals:[26,2,1,""],assertFalse:[26,2,1,""],assertGreater:[26,2,1,""],assertGreaterEqual:[26,2,1,""],assertIn:[26,2,1,""],assertIs:[26,2,1,""],assertIsInstance:[26,2,1,""],assertIsNone:[26,2,1,""],assertIsNot:[26,2,1,""],assertIsNotNone:[26,2,1,""],assertLess:[26,2,1,""],assertLessEqual:[26,2,1,""],assertListEqual:[26,2,1,""],assertLogs:[26,2,1,""],assertMultiLineEqual:[26,2,1,""],assertNotAlmostEqual:[26,2,1,""],assertNotAlmostEquals:[26,2,1,""],assertNotEqual:[26,2,1,""],assertNotEquals:[26,2,1,""],assertNotIn:[26,2,1,""],assertNotIsInstance:[26,2,1,""],assertNotRegex:[26,2,1,""],assertNotRegexpMatches:[26,2,1,""],assertRaises:[26,2,1,""],assertRaisesRegex:[26,2,1,""],assertRaisesRegexp:[26,2,1,""],assertRegex:[26,2,1,""],assertRegexpMatches:[26,2,1,""],assertSequenceEqual:[26,2,1,""],assertSetEqual:[26,2,1,""],assertTrue:[26,2,1,""],assertTupleEqual:[26,2,1,""],assertWarns:[26,2,1,""],assertWarnsRegex:[26,2,1,""],assert_:[26,2,1,""],card_type:[26,5,1,""],countTestCases:[26,2,1,""],debug:[26,2,1,""],defaultTestResult:[26,2,1,""],doClassCleanups:[26,2,1,""],doCleanups:[26,2,1,""],fail:[26,2,1,""],failIf:[26,2,1,""],failIfAlmostEqual:[26,2,1,""],failIfEqual:[26,2,1,""],failUnless:[26,2,1,""],failUnlessAlmostEqual:[26,2,1,""],failUnlessEqual:[26,2,1,""],failUnlessRaises:[26,2,1,""],failureException:[26,5,1,""],id:[26,2,1,""],longMessage:[26,5,1,""],maxDiff:[26,5,1,""],run:[26,2,1,""],setUp:[26,2,1,""],setUpClass:[26,2,1,""],shortDescription:[26,2,1,""],skipTest:[26,2,1,""],subTest:[26,2,1,""],tearDown:[26,2,1,""],tearDownClass:[26,2,1,""],test_card_creation:[26,2,1,""],test_get_and_set_card:[26,2,1,""]},"virtualsmartcard.tests.CardGenerator_test.TestNPACardGenerator":{_addExpectedFailure:[26,2,1,""],_addSkip:[26,2,1,""],_addUnexpectedSuccess:[26,2,1,""],_baseAssertEqual:[26,2,1,""],_callCleanup:[26,2,1,""],_callSetUp:[26,2,1,""],_callTearDown:[26,2,1,""],_callTestMethod:[26,2,1,""],_classSetupFailed:[26,5,1,""],_class_cleanups:[26,5,1,""],_deprecate:[26,2,1,""],_diffThreshold:[26,5,1,""],_feedErrorsToResult:[26,2,1,""],_formatMessage:[26,2,1,""],_getAssertEqualityFunc:[26,2,1,""],_truncateMessage:[26,2,1,""],addClassCleanup:[26,2,1,""],addCleanup:[26,2,1,""],addTypeEqualityFunc:[26,2,1,""],assertAlmostEqual:[26,2,1,""],assertAlmostEquals:[26,2,1,""],assertCountEqual:[26,2,1,""],assertDictContainsSubset:[26,2,1,""],assertDictEqual:[26,2,1,""],assertEqual:[26,2,1,""],assertEquals:[26,2,1,""],assertFalse:[26,2,1,""],assertGreater:[26,2,1,""],assertGreaterEqual:[26,2,1,""],assertIn:[26,2,1,""],assertIs:[26,2,1,""],assertIsInstance:[26,2,1,""],assertIsNone:[26,2,1,""],assertIsNot:[26,2,1,""],assertIsNotNone:[26,2,1,""],assertLess:[26,2,1,""],assertLessEqual:[26,2,1,""],assertListEqual:[26,2,1,""],assertLogs:[26,2,1,""],assertMultiLineEqual:[26,2,1,""],assertNotAlmostEqual:[26,2,1,""],assertNotAlmostEquals:[26,2,1,""],assertNotEqual:[26,2,1,""],assertNotEquals:[26,2,1,""],assertNotIn:[26,2,1,""],assertNotIsInstance:[26,2,1,""],assertNotRegex:[26,2,1,""],assertNotRegexpMatches:[26,2,1,""],assertRaises:[26,2,1,""],assertRaisesRegex:[26,2,1,""],assertRaisesRegexp:[26,2,1,""],assertRegex:[26,2,1,""],assertRegexpMatches:[26,2,1,""],assertSequenceEqual:[26,2,1,""],assertSetEqual:[26,2,1,""],assertTrue:[26,2,1,""],assertTupleEqual:[26,2,1,""],assertWarns:[26,2,1,""],assertWarnsRegex:[26,2,1,""],assert_:[26,2,1,""],card_type:[26,5,1,""],countTestCases:[26,2,1,""],debug:[26,2,1,""],defaultTestResult:[26,2,1,""],doClassCleanups:[26,2,1,""],doCleanups:[26,2,1,""],fail:[26,2,1,""],failIf:[26,2,1,""],failIfAlmostEqual:[26,2,1,""],failIfEqual:[26,2,1,""],failUnless:[26,2,1,""],failUnlessAlmostEqual:[26,2,1,""],failUnlessEqual:[26,2,1,""],failUnlessRaises:[26,2,1,""],failureException:[26,5,1,""],id:[26,2,1,""],longMessage:[26,5,1,""],maxDiff:[26,5,1,""],run:[26,2,1,""],setUp:[26,2,1,""],setUpClass:[26,2,1,""],shortDescription:[26,2,1,""],skipTest:[26,2,1,""],subTest:[26,2,1,""],tearDown:[26,2,1,""],tearDownClass:[26,2,1,""],test_card_creation:[26,2,1,""],test_get_and_set_card:[26,2,1,""],test_readDatagroups:[26,2,1,""]},"virtualsmartcard.tests.CryptoUtils_test":{TestCryptoUtils:[27,1,1,""]},"virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils":{_addExpectedFailure:[27,2,1,""],_addSkip:[27,2,1,""],_addUnexpectedSuccess:[27,2,1,""],_baseAssertEqual:[27,2,1,""],_callCleanup:[27,2,1,""],_callSetUp:[27,2,1,""],_callTearDown:[27,2,1,""],_callTestMethod:[27,2,1,""],_classSetupFailed:[27,5,1,""],_class_cleanups:[27,5,1,""],_deprecate:[27,2,1,""],_diffThreshold:[27,5,1,""],_feedErrorsToResult:[27,2,1,""],_formatMessage:[27,2,1,""],_getAssertEqualityFunc:[27,2,1,""],_truncateMessage:[27,2,1,""],addClassCleanup:[27,2,1,""],addCleanup:[27,2,1,""],addTypeEqualityFunc:[27,2,1,""],assertAlmostEqual:[27,2,1,""],assertAlmostEquals:[27,2,1,""],assertCountEqual:[27,2,1,""],assertDictContainsSubset:[27,2,1,""],assertDictEqual:[27,2,1,""],assertEqual:[27,2,1,""],assertEquals:[27,2,1,""],assertFalse:[27,2,1,""],assertGreater:[27,2,1,""],assertGreaterEqual:[27,2,1,""],assertIn:[27,2,1,""],assertIs:[27,2,1,""],assertIsInstance:[27,2,1,""],assertIsNone:[27,2,1,""],assertIsNot:[27,2,1,""],assertIsNotNone:[27,2,1,""],assertLess:[27,2,1,""],assertLessEqual:[27,2,1,""],assertListEqual:[27,2,1,""],assertLogs:[27,2,1,""],assertMultiLineEqual:[27,2,1,""],assertNotAlmostEqual:[27,2,1,""],assertNotAlmostEquals:[27,2,1,""],assertNotEqual:[27,2,1,""],assertNotEquals:[27,2,1,""],assertNotIn:[27,2,1,""],assertNotIsInstance:[27,2,1,""],assertNotRegex:[27,2,1,""],assertNotRegexpMatches:[27,2,1,""],assertRaises:[27,2,1,""],assertRaisesRegex:[27,2,1,""],assertRaisesRegexp:[27,2,1,""],assertRegex:[27,2,1,""],assertRegexpMatches:[27,2,1,""],assertSequenceEqual:[27,2,1,""],assertSetEqual:[27,2,1,""],assertTrue:[27,2,1,""],assertTupleEqual:[27,2,1,""],assertWarns:[27,2,1,""],assertWarnsRegex:[27,2,1,""],assert_:[27,2,1,""],countTestCases:[27,2,1,""],debug:[27,2,1,""],defaultTestResult:[27,2,1,""],doClassCleanups:[27,2,1,""],doCleanups:[27,2,1,""],fail:[27,2,1,""],failIf:[27,2,1,""],failIfAlmostEqual:[27,2,1,""],failIfEqual:[27,2,1,""],failUnless:[27,2,1,""],failUnlessAlmostEqual:[27,2,1,""],failUnlessEqual:[27,2,1,""],failUnlessRaises:[27,2,1,""],failureException:[27,5,1,""],id:[27,2,1,""],longMessage:[27,5,1,""],maxDiff:[27,5,1,""],run:[27,2,1,""],setUp:[27,2,1,""],setUpClass:[27,2,1,""],shortDescription:[27,2,1,""],skipTest:[27,2,1,""],subTest:[27,2,1,""],tearDown:[27,2,1,""],tearDownClass:[27,2,1,""],test_padding:[27,2,1,""]},"virtualsmartcard.tests.SmartcardSAM_test":{TestSmartcardSAM:[28,1,1,""]},"virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM":{_addExpectedFailure:[28,2,1,""],_addSkip:[28,2,1,""],_addUnexpectedSuccess:[28,2,1,""],_baseAssertEqual:[28,2,1,""],_callCleanup:[28,2,1,""],_callSetUp:[28,2,1,""],_callTearDown:[28,2,1,""],_callTestMethod:[28,2,1,""],_classSetupFailed:[28,5,1,""],_class_cleanups:[28,5,1,""],_deprecate:[28,2,1,""],_diffThreshold:[28,5,1,""],_feedErrorsToResult:[28,2,1,""],_formatMessage:[28,2,1,""],_getAssertEqualityFunc:[28,2,1,""],_truncateMessage:[28,2,1,""],addClassCleanup:[28,2,1,""],addCleanup:[28,2,1,""],addTypeEqualityFunc:[28,2,1,""],assertAlmostEqual:[28,2,1,""],assertAlmostEquals:[28,2,1,""],assertCountEqual:[28,2,1,""],assertDictContainsSubset:[28,2,1,""],assertDictEqual:[28,2,1,""],assertEqual:[28,2,1,""],assertEquals:[28,2,1,""],assertFalse:[28,2,1,""],assertGreater:[28,2,1,""],assertGreaterEqual:[28,2,1,""],assertIn:[28,2,1,""],assertIs:[28,2,1,""],assertIsInstance:[28,2,1,""],assertIsNone:[28,2,1,""],assertIsNot:[28,2,1,""],assertIsNotNone:[28,2,1,""],assertLess:[28,2,1,""],assertLessEqual:[28,2,1,""],assertListEqual:[28,2,1,""],assertLogs:[28,2,1,""],assertMultiLineEqual:[28,2,1,""],assertNotAlmostEqual:[28,2,1,""],assertNotAlmostEquals:[28,2,1,""],assertNotEqual:[28,2,1,""],assertNotEquals:[28,2,1,""],assertNotIn:[28,2,1,""],assertNotIsInstance:[28,2,1,""],assertNotRegex:[28,2,1,""],assertNotRegexpMatches:[28,2,1,""],assertRaises:[28,2,1,""],assertRaisesRegex:[28,2,1,""],assertRaisesRegexp:[28,2,1,""],assertRegex:[28,2,1,""],assertRegexpMatches:[28,2,1,""],assertSequenceEqual:[28,2,1,""],assertSetEqual:[28,2,1,""],assertTrue:[28,2,1,""],assertTupleEqual:[28,2,1,""],assertWarns:[28,2,1,""],assertWarnsRegex:[28,2,1,""],assert_:[28,2,1,""],countTestCases:[28,2,1,""],debug:[28,2,1,""],defaultTestResult:[28,2,1,""],doClassCleanups:[28,2,1,""],doCleanups:[28,2,1,""],fail:[28,2,1,""],failIf:[28,2,1,""],failIfAlmostEqual:[28,2,1,""],failIfEqual:[28,2,1,""],failUnless:[28,2,1,""],failUnlessAlmostEqual:[28,2,1,""],failUnlessEqual:[28,2,1,""],failUnlessRaises:[28,2,1,""],failureException:[28,5,1,""],id:[28,2,1,""],longMessage:[28,5,1,""],maxDiff:[28,5,1,""],run:[28,2,1,""],setUp:[28,2,1,""],setUpClass:[28,2,1,""],shortDescription:[28,2,1,""],skipTest:[28,2,1,""],subTest:[28,2,1,""],tearDown:[28,2,1,""],tearDownClass:[28,2,1,""],test_counter_decrement:[28,2,1,""],test_external_authenticate:[28,2,1,""],test_incorrect_pin:[28,2,1,""],test_internal_authenticate:[28,2,1,""],test_security_environment:[28,2,1,""]},"virtualsmartcard.tests.utils_test":{TestUtils:[29,1,1,""]},"virtualsmartcard.tests.utils_test.TestUtils":{_addExpectedFailure:[29,2,1,""],_addSkip:[29,2,1,""],_addUnexpectedSuccess:[29,2,1,""],_baseAssertEqual:[29,2,1,""],_callCleanup:[29,2,1,""],_callSetUp:[29,2,1,""],_callTearDown:[29,2,1,""],_callTestMethod:[29,2,1,""],_classSetupFailed:[29,5,1,""],_class_cleanups:[29,5,1,""],_deprecate:[29,2,1,""],_diffThreshold:[29,5,1,""],_feedErrorsToResult:[29,2,1,""],_formatMessage:[29,2,1,""],_getAssertEqualityFunc:[29,2,1,""],_truncateMessage:[29,2,1,""],addClassCleanup:[29,2,1,""],addCleanup:[29,2,1,""],addTypeEqualityFunc:[29,2,1,""],assertAlmostEqual:[29,2,1,""],assertAlmostEquals:[29,2,1,""],assertCountEqual:[29,2,1,""],assertDictContainsSubset:[29,2,1,""],assertDictEqual:[29,2,1,""],assertEqual:[29,2,1,""],assertEquals:[29,2,1,""],assertFalse:[29,2,1,""],assertGreater:[29,2,1,""],assertGreaterEqual:[29,2,1,""],assertIn:[29,2,1,""],assertIs:[29,2,1,""],assertIsInstance:[29,2,1,""],assertIsNone:[29,2,1,""],assertIsNot:[29,2,1,""],assertIsNotNone:[29,2,1,""],assertLess:[29,2,1,""],assertLessEqual:[29,2,1,""],assertListEqual:[29,2,1,""],assertLogs:[29,2,1,""],assertMultiLineEqual:[29,2,1,""],assertNotAlmostEqual:[29,2,1,""],assertNotAlmostEquals:[29,2,1,""],assertNotEqual:[29,2,1,""],assertNotEquals:[29,2,1,""],assertNotIn:[29,2,1,""],assertNotIsInstance:[29,2,1,""],assertNotRegex:[29,2,1,""],assertNotRegexpMatches:[29,2,1,""],assertRaises:[29,2,1,""],assertRaisesRegex:[29,2,1,""],assertRaisesRegexp:[29,2,1,""],assertRegex:[29,2,1,""],assertRegexpMatches:[29,2,1,""],assertSequenceEqual:[29,2,1,""],assertSetEqual:[29,2,1,""],assertTrue:[29,2,1,""],assertTupleEqual:[29,2,1,""],assertWarns:[29,2,1,""],assertWarnsRegex:[29,2,1,""],assert_:[29,2,1,""],countTestCases:[29,2,1,""],debug:[29,2,1,""],defaultTestResult:[29,2,1,""],doClassCleanups:[29,2,1,""],doCleanups:[29,2,1,""],fail:[29,2,1,""],failIf:[29,2,1,""],failIfAlmostEqual:[29,2,1,""],failIfEqual:[29,2,1,""],failUnless:[29,2,1,""],failUnlessAlmostEqual:[29,2,1,""],failUnlessEqual:[29,2,1,""],failUnlessRaises:[29,2,1,""],failureException:[29,5,1,""],id:[29,2,1,""],longMessage:[29,5,1,""],maxDiff:[29,5,1,""],run:[29,2,1,""],setUp:[29,2,1,""],setUpClass:[29,2,1,""],shortDescription:[29,2,1,""],skipTest:[29,2,1,""],subTest:[29,2,1,""],tearDown:[29,2,1,""],tearDownClass:[29,2,1,""],test_CAPDU:[29,2,1,""],test_RAPDU:[29,2,1,""]},"virtualsmartcard.utils":{APDU:[30,1,1,""],C_APDU:[30,1,1,""],R_APDU:[30,1,1,""],_make_byte_property:[30,3,1,""],hexdump:[30,3,1,""],inttostring:[30,3,1,""],stringtoint:[30,3,1,""]},"virtualsmartcard.utils.APDU":{_deldata:[30,2,1,""],_format_parts:[30,2,1,""],_getdata:[30,2,1,""],_setbyte:[30,2,1,""],_setdata:[30,2,1,""],data:[30,2,1,""]},"virtualsmartcard.utils.C_APDU":{"case":[30,2,1,""],CLA:[30,2,1,""],INS:[30,2,1,""],Lc:[30,2,1,""],Le:[30,2,1,""],P1:[30,2,1,""],P2:[30,2,1,""],_deldata:[30,2,1,""],_format_fields:[30,2,1,""],_format_parts:[30,2,1,""],_getdata:[30,2,1,""],_setbyte:[30,2,1,""],_setdata:[30,2,1,""],cla:[30,2,1,""],data:[30,2,1,""],effective_Le:[30,2,1,""],ins:[30,2,1,""],lc:[30,2,1,""],le:[30,2,1,""],p1:[30,2,1,""],p2:[30,2,1,""],parse:[30,2,1,""],render:[30,2,1,""]},"virtualsmartcard.utils.R_APDU":{SW1:[30,2,1,""],SW2:[30,2,1,""],SW:[30,2,1,""],_deldata:[30,2,1,""],_format_fields:[30,2,1,""],_format_parts:[30,2,1,""],_getdata:[30,2,1,""],_getsw:[30,2,1,""],_setbyte:[30,2,1,""],_setdata:[30,2,1,""],_setsw:[30,2,1,""],data:[30,2,1,""],parse:[30,2,1,""],render:[30,2,1,""],sw1:[30,2,1,""],sw2:[30,2,1,""],sw:[30,2,1,""]},virtualsmartcard:{CardGenerator:[9,0,0,"-"],ConstantDefinitions:[10,0,0,"-"],CryptoUtils:[11,0,0,"-"],SEutils:[12,0,0,"-"],SWutils:[13,0,0,"-"],SmartcardFilesystem:[14,0,0,"-"],SmartcardSAM:[15,0,0,"-"],TLVutils:[16,0,0,"-"],VirtualSmartcard:[17,0,0,"-"],utils:[30,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","exception","Python exception"],"5":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:exception","5":"py:attribute"},terms:{"0000":[12,23,30],"03119":2,"05_":3,"07_":3,"0x00":[7,12,23],"0x00000000":6,"0x00000001":6,"0x01":[2,7],"0x02":[2,7],"0x03":2,"0x04":[2,7],"0x0c":[14,22],"0x0d46":2,"0x0e":[14,22],"0x0f":[14,22],"0x10":2,"0x18d1":6,"0x3010":2,"0x40":22,"0x4ee1":6,"0x60":22,"0x80":[12,22,23],"0x8c7b":[6,7],"0x8e":[12,22,23],"0x9000":2,"0x9a":[2,12,22,23],"0x9e":[12,22,23],"0xa4":[7,14,22],"0xac":[12,22,23],"0xb0":[14,22],"0xb1":[14,22],"0xb2":[14,22],"0xb3":[14,22],"0xbc":[12,22,23],"0xca":[14,22],"0xcb":[14,22],"0xd0":[14,22],"0xd1":[14,22],"0xd2":[14,22],"0xd6":[14,22],"0xd7":[14,22],"0xda":[14,22],"0xdb":[14,22],"0xdc":[14,22],"0xdd":[14,22],"0xe0":[14,22],"0xe2":[14,22],"0xe4":[14,22],"0xff":[2,7,17,22],"0xxx":7,"1007":3,"1024":22,"107":3,"134010":6,"14443":4,"147":[26,27,28,29],"179":3,"188":3,"2010":3,"2011":3,"2012":3,"2015":6,"256":22,"27c3":3,"27th":3,"3083254":7,"3083586":7,"33392":3,"35963":[4,6],"35964":6,"3b80800101":4,"4297":3,"512":22,"640":[26,27,28,29],"642":3,"65535":14,"65536":[26,27,28,29],"7816":[0,6,12,17,22,23],"78166":7,"7_3":3,"7_win32":6,"978":3,"byte":[7,12,14,15,17,21,22,23,30],"case":[2,4,6,7,22,26,27,28,29,30],"class":[6,7,9,12,14,15,17,19,20,21,22,23,26,27,28,29,30],"default":[2,4,6,26,27,28,29],"enum":4,"f\u00fcr":3,"function":[3,7,11,14,15,17,22,23,26,27,28,29,30],"import":[1,7],"int":[2,4],"long":[4,7,14,22],"m\u00fcller":3,"new":[2,3,6,7,9,12,14,22,23],"null":6,"pl\u00f6tz":6,"public":[3,6,12,15,22,23],"return":[0,7,11,12,13,14,15,16,17,19,20,22,23,26,27,28,29,30],"short":[14,30],"static":[2,14,17,22,23],"switch":[2,6,12,22,23],"throw":7,"true":[14,22,26,27,28,29,30],"try":[3,7],"universit\u00e4t":3,"while":7,Bus:2,But:[6,7],DFs:[14,22],DGs:6,For:[5,6,14,22,26,27,28,29],INS:[2,30],Its:7,Near:1,One:[12,23],QES:6,SWs:7,The:[0,1,2,3,4,5,6,7,11,12,14,15,17,20,21,22,23,26,27,28,29,30],Then:6,There:[7,12],Use:[2,4,6,26,27,28,29],Used:22,Using:[1,4],Will:7,With:[0,4],__computekei:23,__generate_cryptoflex:9,__generate_epass:9,__generate_iso_card:9,__generate_npa:9,__getrecord:14,__getrecordsbyidentifi:14,__getrecordsbynumb:14,__init__:7,__output_from_l:19,__recvfromvpicc:17,__replace_tag:12,__repr__:30,__sendtovpicc:17,__set_algo:12,__set_iv:12,__set_kei:12,__str__:30,__traceback__:13,_addexpectedfailur:[26,27,28,29],_addskip:[26,27,28,29],_addunexpectedsuccess:[26,27,28,29],_baseassertequ:[26,27,28,29],_callcleanup:[26,27,28,29],_callsetup:[26,27,28,29],_callteardown:[26,27,28,29],_calltestmethod:[26,27,28,29],_class_cleanup:[26,27,28,29],_classsetupfail:[26,27,28,29],_deldata:30,_deprec:[26,27,28,29],_diffthreshold:[26,27,28,29],_feederrorstoresult:[26,27,28,29],_format_field:30,_format_part:30,_formatmessag:[26,27,28,29],_get_referenced_kei:[15,22,23],_getassertequalityfunc:[26,27,28,29],_getdata:30,_getsw:30,_make_byte_properti:30,_makesalt:11,_selectfil:[14,22],_set_s:[12,22,23],_setbyt:30,_setdata:30,_setsw:30,_truncatemessag:[26,27,28,29],a000000397425446590201:0,a000000527210101:0,abl:[1,6,9],about:[6,7,26,27,28,29],abov:6,academictitl:6,acardemul:[0,4],accept:[26,27,28,29],access:[0,2,4,5,6,12,15,17,22,23],accessori:1,accord:[7,12,14,17,22,23],accordingli:6,act:[6,7],activ:4,actual:[4,5,7,20],add:[2,4,7,12,26,27,28,29],add_data:7,addclasscleanup:[26,27,28,29],addcleanup:[26,27,28,29],added:[15,22,23,26,27,28,29],addit:[4,26,27,28,29],addition:[2,4,6],address:6,addtypeequalityfunc:[26,27,28,29],adjust:[12,23],adress:30,af_inet:7,after:[26,27,28,29],against:[4,5,6],agreement:[12,22,23],aid:4,aid_list:4,algo:11,algorithm:[11,12,15,22,23],alia:[26,27,28,29],all:[4,5,6,7,12,14,15,16,22,23,26,27,28,29],allow:[0,1,4,5,6,26,27,28,29],almost:[26,27,28,29],alreadi:12,also:[0,1,2,4,6,7,9,14,22,26,27,28,29],altern:[2,3,4,6],although:6,analyz:4,anchor:[6,12,22,23],andrea:3,android:[1,3,6,7],angriff:3,ani:[0,1,2,4,5,6,7,15,22,23],annex:23,anoth:2,answer:[17,22],anywai:[6,23],apart:3,apdu:[0,1,2,4,6,7,12,14,15,17,19,20,22,23,30],api:[6,7],app:[0,1,4,5,6,7],appear:2,append:[11,12,14,22],append_pad:11,appendrecord:[14,22],appl:6,applet:0,applic:[0,1,2,4,5,6,17],applicationidentifi:[14,22],appropri:[1,12,22,23],apt:2,architectur:6,arg:[7,13,14,17,22,26,27,28,29,30],argument:[6,26,27,28,29],argz:[14,22],around:4,arrai:6,articl:6,asctim:7,aspect:3,assert:[26,27,28,29],assert_:[26,27,28,29],assertalmostequ:[26,27,28,29],assertcountequ:[26,27,28,29],assertdictcontainssubset:[26,27,28,29],assertdictequ:[26,27,28,29],assertequ:[26,27,28,29],assertfals:[26,27,28,29],assertgreat:[26,27,28,29],assertgreaterequ:[26,27,28,29],asserti:[26,27,28,29],assertin:[26,27,28,29],assertionerror:[26,27,28,29],assertisinst:[26,27,28,29],assertisnon:[26,27,28,29],assertisnot:[26,27,28,29],assertisnotnon:[26,27,28,29],assertless:[26,27,28,29],assertlessequ:[26,27,28,29],assertlistequ:[26,27,28,29],assertlog:[26,27,28,29],assertmultilineequ:[26,27,28,29],assertnotalmostequ:[26,27,28,29],assertnotequ:[26,27,28,29],assertnotin:[26,27,28,29],assertnotisinst:[26,27,28,29],assertnotregex:[26,27,28,29],assertnotregexpmatch:[26,27,28,29],assertrais:[26,27,28,29],assertraisesregex:[26,27,28,29],assertraisesregexp:[26,27,28,29],assertregex:[26,27,28,29],assertregexpmatch:[26,27,28,29],assertsequenceequ:[26,27,28,29],assertsetequ:[26,27,28,29],asserttru:[26,27,28,29],asserttupleequ:[26,27,28,29],assertwarn:[26,27,28,29],assertwarnsregex:[26,27,28,29],assign:[14,30],assignlogicalchannel:[17,22],associ:[12,23],assum:7,asym:12,atexit:7,atr:[4,7,17,19,20,22],attach:[0,1,5],attack:[4,5,7,20],attempt:6,attribut:[14,22,26,27,28,29,30],auf:3,authent:[12,15,22,23],authenticate_head:[12,22,23],authentisierung:3,autodetect:[2,4],automat:[2,6,17,22,26,27,28,29],autoreconf:[2,4,6],autotool:6,auxiliari:[2,4,6],avail:[0,2,3,4,5,6,7,14,22],avoid:7,bac:6,back:[1,4,7,17,20],backend:4,bar:[5,26,27,28,29],base:[0,2,4,9,12,13,14,15,17,19,20,21,22,23,26,27,28,29,30],basi:[26,27,28,29],basic:[23,26,27,28,29],basicconfig:7,basiert:3,been:[7,26,27,28,29],befor:[7,26,27,28,29],begin:[14,22],being:6,below:[4,6],ber:[14,22],berlin:3,bertlv:16,bertlv_data:[14,22],bertlv_pack:16,bertlv_unpack:16,besitz:3,best:[4,7],better:7,between:[0,2,6,17,22,26,27,28,29],big:[7,12,22,23],bin:6,binari:[6,14,22,30],birthnam:6,bit:[11,14,22],bitmask:[12,22,23],bitstr:[17,22],bix:6,bixvread:6,bixvreaderinstal:6,bleed:[2,4,6],block:[7,11,15,22,23,26,27,28,29],blocklen:11,bndl:6,bool:[14,17,22],both:[2,26,27,28,29],box:2,bring:6,brows:[0,3,5],bsi:2,buffer:7,bug:[2,4,6,7],build:[0,1,2,4,5],building_gadget_usb_modul:2,built:[0,2,4,5,6],bund:2,bundl:6,bz2:2,c_apdu:30,ca_kei:[6,7,17],calcul:[4,11,17,22,23],calculate_mac:11,call:[7,14,21,26,27,28,29],callabl:[26,27,28,29],camera:[0,5],can:[0,2,3,4,5,6,7,14,20,22,26,27,28,29],capabl:[14,17,22],capdu:[12,15,17,22,23],card:[8,9,12,14,15,17,19,20,21,22,23],card_typ:[7,9,17,26],cardaccess:6,cardconnectionexcept:7,cardgener:[7,8],cardgenerator_test:[8,25],cardnumb:15,cardsecret:15,cardsecur:6,cardtyp:7,caught:[26,27,28,29],cbc:11,ccc:3,ccid:3,cct:12,cert:6,certif:[1,6,12,22,23],certifc:6,cfbundledevelopmentregion:6,cfbundleexecut:6,cfbundleinfodictionaryvers:6,cfbundlenam:6,cfbundlepackagetyp:6,cfbundlesignatur:6,cfbundlevers:6,challeng:[15,22,23],chang:[2,4,6,15,22,23],change_reference_data:[15,22,23],channelid:6,chao:3,charact:[17,19,20,22],check:[2,4,6,7,15,22,23,26,27,28,29],checksum:[11,12,22,23],children:[26,27,28,29],chip:6,chipkartenles:3,choic:5,choos:[0,1,4,5,6],chosen:6,chr:7,chv:[15,22,23],cipher:[11,15,22,23],cipherspec:11,citi:6,cla:[2,30],classmethod:[26,27,28,29],cleanup:[7,20,26,27,28,29],click:6,client:2,clone:[0,1,2,3,4,5,6],close:[7,20],cls:[26,27,28,29],club:3,code:[0,2,5,6,7,12,14,16,22,23,26,27,28,29,30],codeproject:6,collect:[26,27,28,29],com:[0,1,2,3,4,5,6,7],combin:[2,4,12],come:7,command:[0,1,2,4,6,7,12,14,15,17,19,20,22,23,30],commandchaing:[17,22],commun:[0,1,3,4,5,6,7,17],communityid:6,compar:[22,26,27,28,29],comparison:[26,27,28,29],compat:2,compil:[0,1,2,4,5,6],complet:[4,6,7,26,27,28,29],complex:7,comput:[0,3,5,6,11,12,22,23],compute_cryptographic_checksum:[12,22,23],compute_digital_signatur:[12,22,23],concern:[3,4,5],conf:[6,7],config:[2,4,5,6,12],configur:[0,2,4,5,7,12],congress:3,connect:[0,1,3,4,5,6,7,17,20],connector:[4,6],connecttoport:[7,17],consecut:30,consid:[26,27,28,29],constantdefinit:8,contact:[4,6],contactless:0,contain:[6,12,14,15,22,23,26,27,28,29],content:[7,9,12,14,22,30],context:[7,26,27,28,29],contribut:[0,1,2,4,5,6],control:[12,14,22,23],controlreferencetempl:12,convent:[17,22],copyright:6,core:2,correct:[7,14,15,22,23],correctli:[15,22],correspond:[7,15,26,27,28,29],counter:[11,15,22,23,26,27,28,29],counterpart:2,countri:6,counttestcas:[26,27,28,29],cover:[4,6],craft:2,creat:[2,3,6,14,22],createfil:[14,22],cross:4,crt:[12,23],crypt:11,crypto_checksum:11,cryptoflex:[6,7,8,9,18,26],cryptoflexgeneratortest:26,cryptoflexmf:[7,22],cryptoflexo:[7,22],cryptoflexs:22,cryptoflexsam:22,cryptograph:[11,12,22,23],cryptotokenkit:6,cryptoutil:[8,15],cryptoutils_test:[8,25],current:[0,3,4,6,9,11,12,14,15,22,23],currentdf:[14,22],currentef:[14,22],custom:2,custom_url:7,cvca:[6,7,17],cyanogenmod:[0,5],cyberflex:[6,11],cycl:[14,22],cyclic:14,d2760001240102000000000000010000:0,daemon:6,data:[0,2,4,5,6,7,11,12,14,15,16,17,22,23,26,27,28,29,30],datacod:14,datagroup:9,datagroupnam:6,datagroupvalu:6,datalist:[14,16],dataobjecthandlingdecodeencapsul:[14,22],dataobjecthandlingdecodeplain:[14,22],dataset:[6,7],datasetfil:[6,7,9,17],datatyp:[26,27,28,29],dataunitsdecodeencapsul:[14,22],dataunitsdecodeplain:[14,22],datefmt:7,dateofbirth:6,dateofexpiri:6,dcb:[14,22],debian:[2,4,6,19],debug:[4,6,26,27,28,29],decim:[26,27,28,29],deciph:[12,22,23],decipher:[12,22,23],decive_unit:6,decod:[14,22],decodediscretionarydataobject:16,decodeextendedheaderlist:16,decodeheaderlist:16,decodeoffsetdataobject:16,decodetaglist:16,deconstruct:[26,27,28,29],decor:14,decrement:[15,22,23],decrypt:[11,14,15,22,23],dedic:14,deem:[26,27,28,29],def:7,default_s:15,default_uid:2,defaulttestresult:[26,27,28,29],defin:[2,15,23],deleg:[0,1,6],deletefil:[14,22],delta:[26,27,28,29],den:3,depend:[0,2,4,5,6,11,14,22,23,26,27,28,29,30],deploi:[0,1,5],deriv:[7,21,23],derive_kei:23,des3:11,des:3,describ:6,descript:[26,27,28,29],descriptor:[14,22],design:7,despit:4,destroypacechannel:2,detail:[6,7,26,27,28,29],detect:5,determin:[26,27,28,29],dev:[2,6],develop:[0,1,4,5],devic:[0,1,2,6],devicenam:6,devices_compatibility_matrix:4,devmgmt:6,dfname:[14,22],dfselectionbyapplication_implicit:[14,22],dfselectionbyfid:[14,22],dfselectionbyfulldfnam:[14,22],dfselectionbypartialdfnam:[14,22],dfselectionbypath:[14,22],dg12:6,dg14:6,dg15:6,dg16:6,dg21:6,dialog:1,dict:6,dictionari:[12,26,27,28,29],die:3,die_gesamte_technik_ist_sich:3,diff:[26,27,28,29],differ:[3,6,7,9,11,12,23,26,27,28,29],digit:[12,22,23,26,27,28,29],direct:[17,22],directconvent:[17,22],directli:[4,6],directori:[2,6,7],disabl:6,disable_check:[7,17],disconnect:7,discuss:[4,5],disk:[7,9],dispatch:[15,17],distanc:4,distribut:4,dlitz:6,do_encrypt:11,do_someth:[26,27,28,29],doc:[6,14],doclasscleanup:[26,27,28,29],docleanup:[26,27,28,29],docstr:[14,26,27,28,29],doctyp:6,document:7,documenttyp:6,doe:[4,6,7,23],doi:3,dominik:[3,4],done:[4,7],doubl:6,down:[7,17,19,20,22],driver:[2,5,6,19],droid:[0,5],dsa:[15,22,23],dst:12,dtd:6,ducktyp:[26,27,28,29],dummy_hcd:2,dylib:6,eac:6,each:[14,21],earlier:6,echo:2,edg:[2,4,6],edit:7,editor:3,ef_cardaccess:[6,7,17],ef_cardsecur:[6,7,17],effect:[26,27,28,29],effective_l:30,efstructure_cyclic_nofurtherinfo:7,efstructure_linear_fixed_:7,efstructure_linear_variable_:7,efstructure_transpar:7,eid:3,einem:3,either:[0,12,14,22,23],electron:[0,6],element:[6,26,27,28,29],elementari:14,elif:7,els:7,email:6,emit:[26,27,28,29],emul:[3,7,17],enabl:[2,3,4,6],enciph:[12,22,23],encipher:[12,22,23],enclos:[26,27,28,29],encod:[6,7,12],encodebertlvdatalist:16,encodedataoffsetobject:16,encodediscretionarydataobject:16,encodefilecontrolparamet:[14,22],encrypt:[7,9,11,14,15,22,23],end:[12,14,22,23,26,27,28,29],endian:7,enforc:[26,27,28,29],engin:3,english:6,ensur:6,enter:[15,22,23],entir:7,entri:2,environ:[4,12,15,22,23],epass:[6,7,8,18],epass_s:23,epassport:23,equal:[14,15,22,23,26,27,28,29],eras:[12,14,15,22,23],erase_s:[15,22,23],erasebinari:[14,22],erasebinaryencapsul:[14,22],erasebinaryplain:[14,22],erasefrom:14,eraserecord:[14,22],eraseto:14,erik:0,eriknellessen:0,err_incorrectparamet:7,err_wronglength:7,error:[2,7,14,22,26,27,28,29],error_cod:[26,27,28,29],erweiterung:3,esign:6,esign_ca_cert:[6,7,17],esign_cert:[6,7,17],esign_kei:[7,17],especi:[4,5],establish:[5,6],establishpacechannel:2,establishpacechannelinput:2,establishpacechanneloutput:2,etc:[6,7],even:[7,14,22,26,27,28,29],everi:6,exactli:[26,27,28,29],exampl:[2,4,6,26,27,28,29,30],exc_info:[26,27,28,29],except:[7,13,26,27,28,29],exe:6,execut:[6,7,17,19,20,22,26,27,28,29],exercis:[26,27,28,29],exist:[0,4,7],exit:[2,4,6,7],expect:[7,26,27,28,29],expected_except:[26,27,28,29],expected_regex:[26,27,28,29],expected_warn:[26,27,28,29],explain:4,explicit:[26,27,28,29],explor:6,expon:22,expr1:[26,27,28,29],expr2:[26,27,28,29],expr:[26,27,28,29],express:[26,27,28,29],extend:[3,6,7],extended_length:17,extendedl:[17,22],extens:1,extern:[6,12,22,23],external_authent:[15,22,23],extra:[26,27,28,29],extra_fci_data:14,f276a288bcfba69d34f31001:0,fabio:6,fail:[7,26,27,28,29],failif:[26,27,28,29],failifalmostequ:[26,27,28,29],failifequ:[26,27,28,29],failunless:[26,27,28,29],failunlessalmostequ:[26,27,28,29],failunlessequ:[26,27,28,29],failunlessrais:[26,27,28,29],failur:[26,27,28,29],failureexcept:[26,27,28,29],fals:[6,7,14,16,17,22,26,27,28,29,30],familynam:6,far:6,fci:[14,22],fdb:7,fdid:[0,5],featur:3,feature_execute_pac:2,feature_modify_pin_direct:2,feature_verify_pin_direct:2,fed:21,feedback:[0,1,2,4,5,6],fetch:[0,1,5,7],ff557573:6,fid:[7,14,22],field:[1,12,22,23,30],file:[0,2,4,5,6,7,9,14,15,17,22],filedescriptor:[7,14,22],filenam:[2,26,27,28,29],filesystem:[9,15,22,23],fill:9,filter:[26,27,28,29],find:[2,4,6,7,16],firewal:7,first:[6,7,14,22,26,27,28,29],firstsft:[14,22],firstsoftwar:[14,22],fix:14,fixtur:[26,27,28,29],fmd:[14,22],focu:6,follow:[0,2,3,4,5,6,7,14,22],foo:[26,27,28,29],foreground:4,form:[4,9,11,15,22,23],format:[7,26,27,28,29],formatresult:[7,17,22],forwar:4,forward:[2,7,17,20],forwared:2,foss:3,found:[26,27,28,29],fragment:2,framework:6,frank:[2,3,4],frankmorgn:[0,1,2,3,4,5,6],fraunhof:3,freerunn:2,friendlynam:6,from:[0,1,2,3,4,5,6,7,9,12,14,15,17,20,21,22,23,26,27,28,29],fsdecrypt:[15,22,23],fsencrypt:[15,22,23],fukuchi:6,full:[4,5,30],further:[26,27,28,29],futur:[15,22,23],g_ether:2,gadget:2,gear:1,gener:[0,2,4,5,6,7,9,11,12,14,15,22,23,26,27,28,29,30],generate_public_key_pair:[12,15,22,23],generatecard:9,german:[0,2,4,5,6],gertrud:6,gesamt:3,get:[2,4,6,7,9,14,22,26,27,28,29],get_card_numb:[15,22,23],get_challeng:[15,22,23],get_ciph:11,get_cipher_blocklen:11,get_cipher_keylen:11,get_index:14,get_referenced_ciph:15,getatr:[7,17,19,20,22],getcard:[7,9],getdata:[14,22],getdataencapsul:[14,22],getdataplain:[14,22],getfile_byrefdataobj:14,getlogg:[26,27,28,29],getmf:[14,22],getpath:[14,22],getreaderpacecap:2,getrespons:[17,22],getsocknam:7,gg487509:2,gid:0,gidsapplet:0,giovanni:3,git:[0,1,2,3,4,5,6],github:[0,1,2,3,4,5,6],give:[6,7,26,27,28,29],given:[4,7,12,14,15,16,17,19,20,22,23,26,27,28,29],givennam:6,global:[12,15,22,23],gmail:2,gnu:[2,4,6],gpl:[0,1,2,4,5,6],group:[6,7],guess:6,guid:[1,3],guidelin:1,guidelines_on_connecting_gears2_device_using_wifi_151222:1,handi:3,handl:[3,7,14,22,26,27,28,29],handleinpdu:[7,21],handleoutpdu:[7,21],handler_test:[6,7,19],handlertest:[7,8,18],handlertesto:[7,19],hardwar:[0,2,4,5,6],has:[0,2,4,5,7,14,22,26,27,28,29],hasfixedrecords:14,hash:[11,12,22,23],hashmap:15,hashmethod:11,hassimpletlv:14,have:[0,1,2,3,4,5,6,7,26,27,28,29],hce:[0,1],header:[2,4,12,22,23],header_authent:[15,22,23],headless:1,heidelberg:3,help:[2,4,6],henryk:6,here:[2,3,4,6,7],hexdump:30,higher:[26,27,28,29],histchar:[17,22],histor:[14,17,22],hmac:11,holder:6,honor:14,honour:[26,27,28,29],hook:[7,26,27,28,29],host:[0,2,4,5,6,7,17],hostnam:[4,6,7],how:[2,4,7],html:[0,1,2,3,5,6],http:[0,1,2,3,4,5,6,7,19],human:[26,27,28,29],humboldt:3,icao:[9,11,23],icc:23,ident:[0,6],identifi:[0,4,14,15,22,23,26,27,28,29],identifier_first:14,identifier_last:14,identifier_next:14,identifier_previ:14,iec:4,ifd:6,ifdcap:6,ifdfriendlynam:6,ifdmanufacturerstr:6,ifdproductid:6,ifdproductstr:6,ifdprotocolsupport:6,ifdread:6,ifdvendorid:6,ifdversionnumb:6,imag:6,immedi:[26,27,28,29],impact:[4,5],implement:[0,2,6,12,19,20,21,22,23,26,27,28,29],implicitli:7,importerror:7,inact:6,includ:[0,1,3,4,6,7,12,15,22,23,26,27,28,29],include_fil:16,incom:[4,6],incomplet:6,indent:[14,30],index:[4,14,15,22,26,27,28,29],index_curr:[14,22],index_htm:2,indic:[12,22,23],info:[2,6,7,26,27,28,29],infoplist:6,inform:[3,12,14,15,22,23,26,27,28,29],informat:3,informatik:3,informationstechnologi:3,ini:6,init:[0,6],initi:[0,1,2,6,7,11,12,14,23],inpdu:21,inpterpret:7,input:11,ins2handl:[17,22],ins:[7,17,22,30],insert:4,insight:7,insmod:2,inspect:[6,26,27,28,29],instanc:[14,16],instead:[0,6,26,27,28,29,30],institut:3,instruct:[14,22],integ:[14,22],integr:6,interact:9,interfac:[0,2,5,6,17,22],intermediari:2,intern:[12,15,22,23],internal_authent:[15,22,23],internet:6,interrupt:2,inttostr:[7,30],invalid:[6,7,15,22,23],invers:[17,22],invok:[12,22,23,26,27,28,29],involv:14,ioanni:3,iscycl:14,isequ:14,isinst:[7,26,27,28,29],iso7816:[6,7,26],iso7816generatortest:26,iso7816o:[7,17,22],iso:[0,4,6,12,17,22,23,30],isoapplet:0,issimpletlv:[14,22],issu:[2,4,6],issuingst:6,ist:3,item:[14,26,27,28,29],iter:[26,27,28,29],its:[2,4,6,7,12,14,22,23,26,27,28,29],itself:7,java:0,jcardsim:0,jen:3,join:7,jump:6,just:[26,27,28,29],kdir:2,keep:[26,27,28,29],kei:[6,7,11,12,15,22,23],kernel:2,keycard:0,keytyp:[15,22,23],keyword:[26,27,28,29],killal:6,kind:[0,1,2,4,5,6,12,22,23],kit:6,kitkat:[0,5],know:[6,7],knowledg:7,krontiri:3,kwarg:[26,27,28,29,30],last:[11,14,22],lastcommandoffcut:7,lastcommandsw:7,later:[4,6,7,22],latest:[2,3,4,6],layer:6,lead:6,lectur:3,len:[7,17,22],len_extend:30,length:[7,11,12,14,16,22,26,27,28,29,30],less:[4,6,26,27,28,29],let:7,level:[7,26,27,28,29],levelnam:7,lian:3,lib:[2,4,6],libccid:2,libeac:6,libexec:6,libifdvpcd:6,libopensc:2,libpath:6,libpcsclit:6,libqrencod:6,librari:[3,6],libtool:[2,4,6],licens:[0,1,2,4,5,6],life:[14,22],lifecycl:[14,22],lifo:[26,27,28,29],like:[2,4,6,26,27,28,29],line:[2,6,26,27,28,29,30],linelen:30,lineno:[26,27,28,29],link:[2,6],linuxtag:3,list1:[26,27,28,29],list2:[26,27,28,29],list:[2,4,6,7,14,16,22,26,27,28,29],listen:4,listread:7,lite:[4,6,19],littl:7,load:[2,6,7],loadmitmfrompath:[7,17],local:[2,6],local_ip:7,localhost:6,locat:[3,4],log:[6,7,26,27,28,29],logger:[26,27,28,29],logger_nam:[26,27,28,29],logginglevel:[7,17],logic:14,logrecord:[26,27,28,29],longmessag:[26,27,28,29],look:[0,2,3,4,6,7,14],loop:17,lost:7,mac:[11,12,22,23],machin:[2,6,23],maco:6,magic:7,mai:[0,1,4,6,11,12,15,21,22,23],mail:6,main:[4,6,7,17],maintain:17,make:[2,4,6,30],make_properti:14,makeatr:[17,22],makefil:2,makefirstsoftwarefunctiont:[14,22],makesecondsoftwarefunctiont:[14,22],makethirdsoftwarefunctiont:[17,22],man:[6,21],manag:[6,7,26,27,28,29],manage_security_environ:[12,15,22,23],mani:16,manipul:[12,22,23],manual:[0,1,5],map:[7,22],mark:[26,27,28,29],mass:6,master:[3,14,15,17,22],match:[4,6,14,26,27,28,29],max:[11,17,22],maxdiff:[26,27,28,29],maximum:[14,15,22,23],maximumchannel:[17,22],maxl:[7,22],maxrecords:[7,14],maxsiz:14,mayb:2,mean:[6,7,11,12,15,17,22,23,26,27,28,29],measur:[26,27,28,29],mechan:[12,22,23],media:3,member:[26,27,28,29],memori:[15,22,23],messag:[6,7,11,12,15,17,22,23,26,27,28,29],meta:30,method:[9,12,15,21,22,23,26,27,28,29],methodnam:[26,27,28,29],microsoft:[2,4,6],middl:[6,21],middlewar:2,might:[7,15,21,22,23,26,27,28,29],min:7,mingw:4,miss:[2,4,6],mitm:[6,7,20],mitmpath:[7,17],mkdir:2,mmc:6,mmo11:3,mo10:3,mobil:[2,3],mobilen:3,mode:[2,4,5,6,7,11,12,15],modern:[2,4],modif:[2,7],modifi:[2,4,7,12,21],modprob:2,modul:[2,4,6,8,18,25],momr12:3,mor12:3,more:[0,1,2,4,5,6,7,12,23,26,27,28,29],morgner:[2,3,4],most:[2,4,7,16,26,27,28,29],mostli:7,mount:2,mous:6,mrtd:[6,23],mrz:9,msc:6,msdn:[2,6],mse:12,msg:[7,17,19,20,22,26,27,28,29],msi:6,multi:[26,27,28,29],multipl:[2,6,7],must:[2,4,5,6,7,9,11,12,14,22,23,26,27,28,29],mutual_authent:[15,22,23],mutual_challeng:[15,22,23],name:[4,6,14,22,30],named_df:[14,22],nation:6,nativ:[1,4],necessari:4,need:[0,1,2,4,5,6,7,15,22,23,26,27,28,29],neither:[14,22],nellesson:0,neo:2,net:[0,6],network:[5,7],neuen:3,new_fil:7,newer:[0,5],newli:14,newlist:14,newtlvlist:[14,22],newvalu:[14,16],next:[1,14,22],nfc:[0,1,3,4,5,6,7],nice:30,nicer:[26,27,28,29],nobodi:23,nofurtherinfo:7,none:[7,9,11,14,15,16,17,22,23,26,27,28,29,30],noop:21,nor:[14,22],normal:[7,22,26,27,28,29],normal_rest:7,note:[3,7,14,17,22,23,26,27,28,29],noth:[12,22,23],notif:2,now:[2,4,6,15,22,23],npa:[0,3,6,7,8,18,26],npao:7,num_id:14,num_result:16,number:[2,4,6,7,14,15,22,23,26,27,28,29],numread:6,oath:0,obj:[2,26,27,28,29],object:[7,9,12,14,15,17,20,21,22,23,26,27,28,29,30],occur:[14,22],odd:[14,22],oep10:3,oepen:[3,4],off:[2,7],offer:3,offset:[14,16,22,30],old:[3,14],older:[2,3,4,6],om11:3,omit:[17,22,26,27,28,29],one:[4,5,12,14,22,23,26,27,28,29,30],onetimewrit:14,onli:[2,4,7,11,14,22,23,26,27,28,29],open:[0,5,6,7,17],openmoko:[2,4,6],openpac:6,openpcd:4,openpgp:0,openpicc:4,openport:[7,17],opensc:[2,6],oper:[4,11,12,14,22,23,26,27,28,29],operation_on_str:11,optim:[26,27,28,29],option:[2,4,6,9,11,17,22,26,27,28,29],ord:7,order:[2,7,12,14,15,22,23,26,27,28,29],org:[0,1,2,4,5,6,19],other:[2,5,6,12,15,22,23,26,27,28,29],otherwis:[4,12,14,22,26,27,28,29],ottavi:6,our:[0,1,2,3,4,5,6,7,30],out:[2,7,26,27,28,29],outpdu:21,output:[6,26,27,28,29],over:[4,5,6,7],overview:[6,7],overwrit:[7,30],overwritten:21,own:[0,1,6,21,26,27,28,29],pace:[0,2,6],pacecap:2,pack:16,packag:21,pad:[11,12,22,23],padding_class:11,pair:[12,23],parallel:6,param:[14,26,27,28,29],paramet:[11,12,14,15,17,19,20,22,23,26,27,28,29],parent:[7,14,22],pariti:23,pars:[7,12,15,22,23,30],parse_se_config:12,parse_sm_capdu:[12,15,22,23],part:[3,6,14],partial:[14,22],pass:[7,17],passport:[0,6,9,11,23],passportsam:23,patch:2,path:[6,7,9,14,15,17,22],pattern:[26,27,28,29],pbkdf2:6,pc_to_rdr_secur:2,pc_to_rdr_xfrblock:2,pcd:[6,7,17],pcsc:[0,4,6],pcsc_scan:6,pcscd:[6,7],pcsclite:[4,6],pdf:[1,3],pdu:21,perform:[2,4,12,17,19,20,22,23],perform_security_oper:[12,15,22,23],period:6,permiss:[0,5],persist:9,personalauswei:3,peter:3,pezorform_security_oper:22,phone:[6,7],photo:9,php:4,physic:[7,20],piec:14,pil:6,pin:[0,2,15,22,23],pipe:[2,6],pkc:6,pkg:[2,4,6],pkg_config_path:4,pkgconfig:4,pki:23,place:[6,26,27,28,29],placeofbirth:6,plain:[12,15,22,23],platform:[0,1,2,4,5,6],pleas:[0,1,2,4,5,6],plist:6,plu:[26,27,28,29],plug:6,point:14,pointer:14,port:[4,6,7,17],portabl:2,posess:[15,22,23],posit:[26,27,28,29],possibl:[0,2,4,6],power:[7,17,19,20,22],powerdown:[7,17,19,20,22],powerup:[7,17,19,20,22],predic:6,prefix:4,prepend:[11,14,22],present:2,pretend:6,pretti:7,prettyprint_anyth:14,previou:[14,22],previous:[7,12,23],print:[2,4,5,6,7,26,27,28,29],print_ascii:7,privaci:3,privat:[6,12,15,22,23],probabl:[2,4,6],problem:6,process:[0,1,4],produc:[17,21],product:[2,6],program:[1,3,6,7],programmingguide_accessori:1,project:[0,1,2,3,4,5,6],prompt:9,prop:[14,30],properti:[14,17,22,30],propertylist:6,proprietari:[2,6,14],protect:[0,6,12,15,22,23],protect_respons:[12,22,23],protect_result:[15,22,23],protocol:[0,1,6,7,17,22,23],prove:[15,22,23],provid:[6,7,12,23,26,27,28,29],pseudo:2,pseudorandom:11,publikationen:2,publish:6,puk:[15,22,23],purpos:[4,26,27,28,29],put:[14,22],putdata:[14,22],putdataencapsul:[14,22],putdataplain:[14,22],pwd:2,pwendland:0,pycrypto:6,pypi:6,pyreadlin:6,pyscard:[6,7],python:[26,27,28,29],pythonwar:6,qrcode:7,qrencod:6,qrserver:7,quit:7,r_apdu:[7,30],rais:[7,14,22,26,27,28,29],random:[2,15,22,23],randomli:6,rapdu:[7,17],raw:[12,22,23],rdr_to_pc_datablock:2,read:[6,7,9,14,22,23],readabl:[23,26,27,28,29],readbinari:[14,22],readbinaryencapsul:[14,22],readbinaryplain:[14,22],readdatagroup:[7,9],reader0:6,reader1:6,reader2:6,reader:[0,1,3,4,6,7,19,20],readernum:[7,17,20],readlin:6,readrecord:[14,22],readrecordencapsul:[14,22],readrecordplain:[14,22],real:[2,4,6,7,20,21],reali:21,realiz:4,reason:[26,27,28,29],recalculate_length:16,receiv:[4,7,17,20],recent:2,recogn:7,reconnect:7,record:[7,14,22,26,27,28,29],recordhandlingdecod:[14,22],recordidentifiersupport:[14,22],recordnumbersupport:[14,22],recordpoint:14,recordstructureef:[7,14,22],recurs:[6,14],redlich:3,ref:14,refdataobj:14,refer:[12,14,15,22,23,26,27,28,29],referenc:[15,22,23],regard:[14,22,26,27,28,29],regex:[26,27,28,29],regexp:[26,27,28,29],regist:[1,4,6,7,26,27,28,29],regular:[26,27,28,29],rel:6,relai:[0,3,5,6,7,8,18,21],relaymiddleman:[7,8,18,20],relayo:[7,20],releas:[2,3,4,6],religiousartisticnam:6,remot:[0,3,4,6],remotesmartcardread:[0,5],remov:[12,14,22,23],render:[7,30],replac:[6,12,14,15,22,23],report:[2,4,6],repositori:[0,2,3,4,5,6],repres:30,represent:14,request:[3,6,7,14],requestedtl:[14,22],requir:[0,2,5,6,7,23],res:4,research:3,reset:[7,14,15,17,19,20,22,23],resetrecordpoint:14,residencepermit1:6,residencepermit2:6,resp_data:23,respect:7,respons:[0,1,2,4,6,7,9,12,14,15,17,19,20,22,23,30],respsons:17,ressourc:1,rest:7,restart:6,restor:[12,15,22,23],restore_s:[15,22,23],result:[7,12,14,16,17,22,23,26,27,28,29],resum:[26,27,28,29],retri:[15,22,23],retriev:[15,22,23],revers:[6,7],rfid:4,rfu:[15,22,23],right:[15,22,23],root:[6,26,27,28,29],round:[26,27,28,29],rousseau:19,routin:6,rpc_type:6,rsa:[15,22,23],rule:[26,27,28,29],run:[0,2,4,5,7,17,26,27,28,29],runtest:[26,27,28,29],runtim:0,russello:3,sai:6,said:7,salsa:19,salt:11,sam:[7,9,12,14,15,17,22,23],same:[6,7,26,27,28,29],samsung:1,saniti:4,sar:3,save:6,scan:[0,5,7],scanner:5,scardcontrol:2,scardtransmit:2,schmidt:3,scienc:3,script:6,sdk:[0,1,5],search:[14,22],searchbinaryencapsul:[14,22],searchbinaryplain:[14,22],second:[14,22,26,27,28,29],secondsft:[14,22],secondsoftwar:[14,22],secret:[11,15,22,23],section:4,secur:[2,3,6,7,12,15,17,22,23],security_environ:[12,15,22,23],see:[2,4,6,7,14,17,19,22],seed:23,seekabl:[7,17,22],seid:[12,15,22,23],select:[0,1,4,5,7,11,14,17,22],selectfil:[14,22],self:[7,13,26,27,28,29],send:[1,4,7,11,12,17,20,21,22,23],sendcommandapdu:7,sent:[4,7],seper:6,seq1:[26,27,28,29],seq2:[26,27,28,29],seq_typ:[26,27,28,29],sequenc:[11,23,26,27,28,29],sequenti:14,serial:[2,6],serv:21,server_sock:7,servic:[1,6],session:7,session_kei:11,set1:[26,27,28,29],set2:[26,27,28,29],set:[4,6,9,12,13,14,17,22,23,26,27,28,29],set_asym_algorithm:[15,22,23],set_mf:[15,22,23],setcard:9,setter:[15,22,23],settimeout:7,setup:[26,27,28,29],setupclass:[26,27,28,29],seutil:[8,15,22,23],sever:[2,4,6],sex:6,shall:[6,12,22,23],shell:6,shiguo:3,ship:[2,4,6],shortdescript:[26,27,28,29],shortfid:14,shortfidsupport:[14,22],should:[4,6,7,12,14,22,23,26,27,28,29],show:6,sicher:3,sicherheitsanalys:3,sigkil:6,sign:[6,12,22,23],signatur:[6,12,22,23],signific:[26,27,28,29],silenc:[26,27,28,29],similar:[7,26,27,28,29],similarli:[26,27,28,29],simpl:[0,7,14,22],simplest:21,simpletlv:16,simpletlv_data:[14,22],simpletlv_pack:16,simpletlv_unpack:16,simpli:[6,7],simul:[0,1],sinc:[2,6],sit:3,six:12,size:[11,14,22],skip:[26,27,28,29],skiptest:[26,27,28,29],sln:6,slot:6,sm_header:[12,22,23],smart:[17,19,20,21],smartcard:[3,5,6,7,14,17,20],smartcardfilesystem:[8,22],smartcardo:[7,17,19,20,22],smartcardsam:[8,22,23],smartcardsam_test:[8,25],smartcardservic:6,smartphon:[0,3,5],smartwatch:0,snapshot:2,social:3,sock:7,sock_dgram:7,socket:[0,6,7,17],softwar:[2,4,5,6,7,14,17,22],solut:6,some:[2,3,7],some_attribut:[26,27,28,29],someexcept:[26,27,28,29],someth:6,somewarn:[26,27,28,29],sourc:[0,1,2,5,7],sourceforg:[2,4,6,7],space:30,special:[2,5],specif:[7,15,22,23,26,27,28,29],specifi:[4,6,7,11,12,14,15,16,22,23,26,27,28,29],specifii:6,springer:3,spsmartcardsdatatyp:6,spusbdatatyp:6,src:[2,4],ssc:[11,23],stabl:6,stack:2,stai:4,standalon:6,standard:[2,4,6,7,23,26,27,28,29],standardmsg:[26,27,28,29],start:[2,4,6,14],startup:6,state:14,statu:[2,14,22,30],step:6,still:[2,3,4,6],stop:[6,7,17],storag:[6,9],store:[12,15,22,23],store_s:[15,22,23],str:[7,17],straight:7,street:6,string1:11,string2:11,string:[2,4,6,7,11,12,14,15,16,17,19,20,22,26,27,28,29,30],stringtoint:[7,30],strip:11,strip_pad:11,structur:[14,16],studio:[0,4,5,6],stuttgart:3,style:[26,27,28,29],subclass:[26,27,28,29],subdir:2,submodul:[0,1,6],subset:[2,26,27,28,29],subsystem:6,subtest:[26,27,28,29],success:[15,22,23,26,27,28,29],successful:7,successfulli:6,sudo:[2,6],suffer:[26,27,28,29],suggest:[0,1,2,4,5,6],suitabl:11,sun:4,superset:[26,27,28,29],support:[2,4,6,9,11,12,22,26,27,28,29],suppos:6,sure:[6,7],sw1:[2,7,30],sw2:[2,7,30],swerror:[7,13],swutil:8,sym:12,symmetri:[26,27,28,29],syntax:6,sys:7,sysconfdir:6,system:[2,3,4,5,6,7,15],system_profil:6,systemroot:6,szenario:3,t15:[17,22],tabl:[12,14,17,22,23],tag:[12,14,16,22,23],tagungsband:3,tai:[17,22],taj:[17,22],take:[14,15,22,23,26,27,28,29],taken:6,tar:2,tbi:[17,22],tbj:[17,22],tcardemul:1,tci:[17,22],tcj:[17,22],tck:[17,22],tcp:[6,14,22],tcp_port:6,tdi:[17,22],teardown:[26,27,28,29],teardownclass:[26,27,28,29],tech:1,techdoc:1,technik:3,technischerichtlinien:2,telecommun:3,templat:[7,12,14,22,23],term:6,termin:[0,4,12,15,21,22,23],test:[0,1,2,4,5,6,8,26,27,28,29],test_capdu:29,test_card_cr:26,test_cas:[26,27,28,29],test_counter_decr:28,test_external_authent:28,test_get_and_set_card:26,test_incorrect_pin:28,test_internal_authent:28,test_pad:27,test_rapdu:29,test_readdatagroup:26,test_security_environ:28,testcas:[26,27,28,29],testcryptoutil:27,tester:[6,19],testnpacardgener:26,testresult:[26,27,28,29],testsmartcardsam:28,testutil:29,text:[22,26,27,28,29],than:[0,1,2,4,5,6,26,27,28,29],the_except:[26,27,28,29],the_warn:[26,27,28,29],thehistor:[14,22],thei:[6,11,12,26,27,28,29],them:[0,17],themselv:3,therefor:9,thesi:3,thi:[2,4,5,6,7,9,11,12,14,15,17,19,20,21,22,23,26,27,28,29,30],thing:[7,14],third:[17,22],those:[7,26,27,28,29],through:[0,2,6],time:[2,4,6,7,26,27,28,29],tip:1,titl:4,tizen:[0,3],tlv:[12,14,16,22,23],tlv_data:16,tlv_find_tag:16,tlv_unpack:16,tlvutil:8,tmp:4,to_str:12,togeth:[0,4],tool:[1,2,4,6],toolset:6,tr03119:2,tracker:[0,1,2,4,5,6],tradit:[5,6],transmiss:[17,22],transmit:[0,2,4,7],transpar:14,transparentstructureef:[7,14,22],tri:6,trigger:[26,27,28,29],trust:[2,6,12,22,23],tupl:[14,16,22,26,27,28,29],tuple1:[26,27,28,29],tuple2:[26,27,28,29],two:[14,22,26,27,28,29],type:[3,6,9,11,12,15,22,23,26,27,28,29],typeobj:[26,27,28,29],ubuntu:[2,4,6],udc:2,ulrich:3,umbrella:3,umdf:6,umfeld:3,unam:2,und:3,under:[15,22,23],understood:15,unequ:[26,27,28,29],unexpect:[26,27,28,29],unexpected_regex:[26,27,28,29],unfamiliar:[2,4,6],unit:[14,22],unittest:[26,27,28,29],univers:2,unix:5,unknown:[7,14,22],unless:[26,27,28,29],unlik:[26,27,28,29],unpack:16,unplug:6,unprotect:[12,15,22,23],unprotected_result:[15,22,23],until:[15,22,23],unverifi:6,updat:[0,6,14,22],updatebinari:[14,22],updatebinaryencapsul:[14,22],updatebinaryplain:[14,22],updaterecord:[14,22],updaterecordencapsul:[14,22],updaterecordplain:[14,22],url:[3,6],usabl:[2,3],usag:6,usb:[3,6],use:[0,1,2,4,5,6,7,11,12,14,15,17,22,23,26,27,28,29],used:[0,2,4,5,6,7,9,11,12,14,15,19,20,22,23,26,27,28,29,30],useful:[1,26,27,28,29],user:[2,6,9,15,21,22,23],uses:[0,1,2,4,6,23,26,27,28,29],using:[0,1,2,3,4,5,6,7,12,14,15,22,23],usr:[2,6],usual:[2,6,7,14,26,27,28,29],utf:6,util:[6,8],utils_test:[8,25],valid:[6,7,15,22,23,26,27,28,29],valu:[4,6,12,14,15,17,22,23,26,27,28,29,30],variabl:14,variou:[2,3,11,12,22,23],vdpu:21,vector:11,vendor:[2,6],vendor_ifd_typ:6,vendor_nam:6,verbos:[2,4,6],verif:[0,2,12,22,23],verifi:[0,2,6,12,15,22,23],verify_certif:[12,22,23],verify_cryptographic_checksum:[12,22,23],verify_digital_signatur:[12,22,23],verlag:3,version:[0,1,2,4,5,6,15,22,23],via:[0,1,2,4,5,6,7,11,15,17,20],vicc:[4,6,7,17,21],virtual:[0,4,5,17],virtualicc:[7,17],virtualsmartcard:[6,7,9,11,12,13,14,15,16,19,20,21,22,23,26,27,28,29,30],visual:[4,6],vletoux:0,volum:3,vpcd:[4,5,7,17,20],vpicc:[7,17],vsmartcard:[0,1,2,3,4,5,6],w64:4,wai:6,wait:[4,6],waldmann:3,walk:14,want:[0,2,3,7],warm:[17,19,20,22],warn:[6,7,26,27,28,29],warn_noinfo63:22,warnclass:[26,27,28,29],wdk:6,web:3,welcom:[0,1,2,4,5,6],well:6,what:[4,7,12,14,22,23],whatev:30,when:[4,5,6,7,26,27,28,29,30],where:[2,4,5,6,7,14],wherea:2,whether:[12,15,17,22,23,26,27,28,29],which:[0,2,4,6,7,11,12,14,17,21,22,26,27,28,29,30],whose:[26,27,28,29],wiki:2,win32:6,window:[2,4,5],winscard:[4,6],wireless:1,wissen:3,with_mark:16,with_traceback:13,without:[0,6,11,26,27,28,29,30],wix:6,wixtoolset:6,wolf:3,word:30,work:[2,4,6,7],workaround:7,workshop:3,write:[14,22],writeand:14,writebinari:[14,22],writebinaryencapsul:[14,22],writebinaryplain:[14,22],writeor:14,writerecord:[14,22],written:[2,4],wudfhost:6,www:[0,2,4,6],x00:11,x01:7,x02:7,x03:7,x04:7,x38:7,x64:6,x82:6,xff:7,xjf:2,xml:[4,6],xor:14,xxx:7,yield:[6,26,27,28,29],ykneo:0,you:[0,1,2,3,4,5,6,7,14,22,26,27,28,29],your:[0,1,2,4,5,6,7],yourself:[3,7],yubico:0,zero:[15,22,23,26,27,28,29],zip:6,zone:23,zum:3,zur:3},titles:["Android Smart Card Emulator","Tizen Smart Card Emulator","USB CCID Emulator","Welcome to the Virtual Smart Card Architecture documentation!","PC/SC Relay","Remote Smart Card Reader","Virtual Smart Card","Creating a Virtual Smart Card","virtualsmartcard Package","CardGenerator Module","ConstantDefinitions Module","CryptoUtils Module","SEutils Module","SWutils Module","SmartcardFilesystem Module","SmartcardSAM Module","TLVutils Module","VirtualSmartcard Module","cards Package","HandlerTest Module","Relay Module","RelayMiddleman Module","cryptoflex Module","ePass Module","nPA Module","tests Package","CardGenerator_test Module","CryptoUtils_test Module","SmartcardSAM_test Module","utils_test Module","utils Module"],titleterms:{"7816":7,Use:[0,1,5],Using:6,android:[0,4,5],architectur:3,build:6,card:[0,1,2,3,4,5,6,7,18],cardgener:9,cardgenerator_test:26,ccid:2,compliant:2,configur:6,constantdefinit:10,contact:[0,1,5],contactless:4,creat:7,cryptoflex:22,cryptoutil:11,cryptoutils_test:27,document:3,download:[0,1,2,3,4,5,6],emul:[0,1,2,4,6],epass:23,exampl:7,gadgetf:2,handlertest:19,hint:[2,4],implement:7,instal:[0,1,2,4,5,6],interfac:4,iso:7,less:[0,1,5],libnfc:4,like:7,linux:[2,4,6],mac:6,middlewar:4,modul:[9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,26,27,28,29,30],note:[0,1,2,4,5,6],npa:24,other:7,packag:[8,18,25],phone:[0,5],python:6,question:[0,1,2,4,5,6],reader:[2,5],refer:[0,1,2,3,4,5,6],relai:[4,20],relaymiddleman:21,remot:5,run:6,seutil:12,similar:[2,4,6],smart:[0,1,2,3,4,5,6,7],smartcardfilesystem:14,smartcardsam:15,smartcardsam_test:28,smartwatch:1,swutil:13,test:25,tizen:1,tlvutil:16,type:7,unix:[2,4,6],usag:[2,4],usb:2,util:30,utils_test:29,virtual:[3,6,7],virtualsmartcard:[8,17],vpcd:6,vpicc:6,welcom:3,window:6,written:6}})
\ No newline at end of file
+Search.setIndex({docnames:["ACardEmulator/README","TCardEmulator/README","ccid/README","index","pcsc-relay/README","remote-reader/README","virtualsmartcard/README","virtualsmartcard/api","virtualsmartcard/api/virtualsmartcard","virtualsmartcard/api/virtualsmartcard.CardGenerator","virtualsmartcard/api/virtualsmartcard.ConstantDefinitions","virtualsmartcard/api/virtualsmartcard.CryptoUtils","virtualsmartcard/api/virtualsmartcard.SEutils","virtualsmartcard/api/virtualsmartcard.SWutils","virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem","virtualsmartcard/api/virtualsmartcard.SmartcardSAM","virtualsmartcard/api/virtualsmartcard.TLVutils","virtualsmartcard/api/virtualsmartcard.VirtualSmartcard","virtualsmartcard/api/virtualsmartcard.cards","virtualsmartcard/api/virtualsmartcard.cards.cryptoflex","virtualsmartcard/api/virtualsmartcard.cards.ePass","virtualsmartcard/api/virtualsmartcard.cards.nPA","virtualsmartcard/api/virtualsmartcard.utils"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinxcontrib.bibtex":7,sphinx:56},filenames:["ACardEmulator/README.txt","TCardEmulator/README.txt","ccid/README.txt","index.txt","pcsc-relay/README.txt","remote-reader/README.txt","virtualsmartcard/README.txt","virtualsmartcard/api.txt","virtualsmartcard/api/virtualsmartcard.txt","virtualsmartcard/api/virtualsmartcard.CardGenerator.txt","virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.txt","virtualsmartcard/api/virtualsmartcard.CryptoUtils.txt","virtualsmartcard/api/virtualsmartcard.SEutils.txt","virtualsmartcard/api/virtualsmartcard.SWutils.txt","virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.txt","virtualsmartcard/api/virtualsmartcard.SmartcardSAM.txt","virtualsmartcard/api/virtualsmartcard.TLVutils.txt","virtualsmartcard/api/virtualsmartcard.VirtualSmartcard.txt","virtualsmartcard/api/virtualsmartcard.cards.txt","virtualsmartcard/api/virtualsmartcard.cards.cryptoflex.txt","virtualsmartcard/api/virtualsmartcard.cards.ePass.txt","virtualsmartcard/api/virtualsmartcard.cards.nPA.txt","virtualsmartcard/api/virtualsmartcard.utils.txt"],objects:{"virtualsmartcard.CardGenerator":{CardGenerator:[9,1,1,""]},"virtualsmartcard.CardGenerator.CardGenerator":{__generate_cryptoflex:[9,2,1,""],__generate_ePass:[9,2,1,""],__generate_iso_card:[9,2,1,""],__generate_nPA:[9,2,1,""],generateCard:[9,2,1,""],getCard:[9,2,1,""],readDatagroups:[9,2,1,""],setCard:[9,2,1,""]},"virtualsmartcard.CryptoUtils":{_makesalt:[11,3,1,""],append_padding:[11,3,1,""],calculate_MAC:[11,3,1,""],cipher:[11,3,1,""],crypto_checksum:[11,3,1,""],decrypt:[11,3,1,""],encrypt:[11,3,1,""],get_cipher:[11,3,1,""],get_cipher_blocklen:[11,3,1,""],get_cipher_keylen:[11,3,1,""],hash:[11,3,1,""],operation_on_string:[11,3,1,""],strip_padding:[11,3,1,""]},"virtualsmartcard.SEutils":{ControlReferenceTemplate:[12,1,1,""],Security_Environment:[12,1,1,""]},"virtualsmartcard.SEutils.ControlReferenceTemplate":{__replace_tag:[12,2,1,""],__set_algo:[12,2,1,""],__set_iv:[12,2,1,""],__set_key:[12,2,1,""],parse_SE_config:[12,2,1,""],to_string:[12,2,1,""]},"virtualsmartcard.SEutils.Security_Environment":{_set_SE:[12,2,1,""],compute_cryptographic_checksum:[12,2,1,""],compute_digital_signature:[12,2,1,""],decipher:[12,2,1,""],encipher:[12,2,1,""],generate_public_key_pair:[12,2,1,""],hash:[12,2,1,""],manage_security_environment:[12,2,1,""],parse_SM_CAPDU:[12,2,1,""],perform_security_operation:[12,2,1,""],protect_response:[12,2,1,""],verify_certificate:[12,2,1,""],verify_cryptographic_checksum:[12,2,1,""],verify_digital_signature:[12,2,1,""]},"virtualsmartcard.SWutils":{SwError:[13,4,1,""]},"virtualsmartcard.SWutils.SwError":{args:[13,5,1,""],with_traceback:[13,2,1,""]},"virtualsmartcard.SmartcardFilesystem":{DF:[14,1,1,""],EF:[14,1,1,""],File:[14,1,1,""],MF:[14,1,1,""],Record:[14,1,1,""],RecordStructureEF:[14,1,1,""],TransparentStructureEF:[14,1,1,""],get_indexes:[14,3,1,""],getfile_byrefdataobj:[14,3,1,""],isEqual:[14,3,1,""],make_property:[14,3,1,""],prettyprint_anything:[14,3,1,""],walk:[14,3,1,""],write:[14,3,1,""]},"virtualsmartcard.SmartcardFilesystem.DF":{append:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],content:[14,2,1,""],data:[14,2,1,""],decrypt:[14,2,1,""],dfname:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],remove:[14,2,1,""],select:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.EF":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.File":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.MF":{_selectFile:[14,2,1,""],append:[14,2,1,""],appendRecord:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],content:[14,2,1,""],create:[14,2,1,""],createFile:[14,2,1,""],current:[14,2,1,""],currentDF:[14,2,1,""],currentEF:[14,2,1,""],data:[14,2,1,""],dataObjectHandlingDecodeEncapsulated:[14,2,1,""],dataObjectHandlingDecodePlain:[14,2,1,""],dataUnitsDecodeEncapsulated:[14,2,1,""],dataUnitsDecodePlain:[14,2,1,""],decrypt:[14,2,1,""],deleteFile:[14,2,1,""],dfname:[14,2,1,""],encodeFileControlParameter:[14,2,1,""],encrypt:[14,2,1,""],eraseBinaryEncapsulated:[14,2,1,""],eraseBinaryPlain:[14,2,1,""],eraseRecord:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],firstSFT:[14,2,1,""],getDataEncapsulated:[14,2,1,""],getDataPlain:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],makeFirstSoftwareFunctionTable:[14,2,1,""],makeSecondSoftwareFunctionTable:[14,2,1,""],named_dfs:[14,2,1,""],parent:[14,2,1,""],putDataEncapsulated:[14,2,1,""],putDataPlain:[14,2,1,""],putdata:[14,2,1,""],readBinaryEncapsulated:[14,2,1,""],readBinaryPlain:[14,2,1,""],readRecordEncapsulated:[14,2,1,""],readRecordPlain:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],recordHandlingDecode:[14,2,1,""],remove:[14,2,1,""],searchBinaryEncapsulated:[14,2,1,""],searchBinaryPlain:[14,2,1,""],secondSFT:[14,2,1,""],select:[14,2,1,""],selectFile:[14,2,1,""],simpletlv_data:[14,2,1,""],updateBinaryEncapsulated:[14,2,1,""],updateBinaryPlain:[14,2,1,""],updateRecordEncapsulated:[14,2,1,""],updateRecordPlain:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writeBinaryEncapsulated:[14,2,1,""],writeBinaryPlain:[14,2,1,""],writeRecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.Record":{data:[14,2,1,""],identifier:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.RecordStructureEF":{__getRecords:[14,2,1,""],__getRecordsByIdentifier:[14,2,1,""],__getRecordsByNumber:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],eraserecord:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],hasFixedRecordSize:[14,2,1,""],hasSimpleTlv:[14,2,1,""],isCyclic:[14,2,1,""],lifecycle:[14,2,1,""],maxrecordsize:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],recordpointer:[14,2,1,""],records:[14,2,1,""],resetRecordPointer:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.TransparentStructureEF":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardSAM":{SAM:[15,1,1,""],get_referenced_cipher:[15,3,1,""]},"virtualsmartcard.SmartcardSAM.SAM":{FSdecrypt:[15,2,1,""],FSencrypt:[15,2,1,""],_get_referenced_key:[15,2,1,""],change_reference_data:[15,2,1,""],erase_SE:[15,2,1,""],external_authenticate:[15,2,1,""],generate_public_key_pair:[15,2,1,""],get_card_number:[15,2,1,""],get_challenge:[15,2,1,""],internal_authenticate:[15,2,1,""],manage_security_environment:[15,2,1,""],mutual_authenticate:[15,2,1,""],parse_SM_CAPDU:[15,2,1,""],perform_security_operation:[15,2,1,""],protect_result:[15,2,1,""],restore_SE:[15,2,1,""],set_MF:[15,2,1,""],set_asym_algorithm:[15,2,1,""],store_SE:[15,2,1,""],verify:[15,2,1,""]},"virtualsmartcard.TLVutils":{bertlv_pack:[16,3,1,""],bertlv_unpack:[16,3,1,""],decodeDiscretionaryDataObjects:[16,3,1,""],decodeExtendedHeaderList:[16,3,1,""],decodeHeaderList:[16,3,1,""],decodeOffsetDataObjects:[16,3,1,""],decodeTagList:[16,3,1,""],encodeDataOffsetObjects:[16,3,1,""],encodeDiscretionaryDataObjects:[16,3,1,""],encodebertlvDatalist:[16,3,1,""],pack:[16,3,1,""],simpletlv_pack:[16,3,1,""],simpletlv_unpack:[16,3,1,""],tlv_find_tag:[16,3,1,""],tlv_find_tags:[16,3,1,""],tlv_unpack:[16,3,1,""],unpack:[16,3,1,""]},"virtualsmartcard.VirtualSmartcard":{Iso7816OS:[17,1,1,""],SmartcardOS:[17,1,1,""],VirtualICC:[17,1,1,""],loadMitMFromPath:[17,3,1,""]},"virtualsmartcard.VirtualSmartcard.Iso7816OS":{SAM:[17,2,1,""],execute:[17,2,1,""],formatResult:[17,2,1,""],getATR:[17,2,1,""],getResponse:[17,2,1,""],makeATR:[17,2,1,""],makeThirdSoftwareFunctionTable:[17,2,1,""],mf:[17,2,1,""],powerDown:[17,2,1,""],powerUp:[17,2,1,""],reset:[17,2,1,""],seekable:[17,2,1,""]},"virtualsmartcard.VirtualSmartcard.SmartcardOS":{execute:[17,2,1,""],getATR:[17,2,1,""],powerDown:[17,2,1,""],powerUp:[17,2,1,""],reset:[17,2,1,""]},"virtualsmartcard.VirtualSmartcard.VirtualICC":{__recvFromVPICC:[17,2,1,""],__sendToVPICC:[17,2,1,""],connectToPort:[17,2,1,""],openPort:[17,2,1,""],run:[17,2,1,""],stop:[17,2,1,""]},"virtualsmartcard.cards":{cryptoflex:[19,0,0,"-"],ePass:[20,0,0,"-"]},"virtualsmartcard.cards.cryptoflex":{CryptoflexMF:[19,1,1,""],CryptoflexOS:[19,1,1,""],CryptoflexSAM:[19,1,1,""],CryptoflexSE:[19,1,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexMF":{_selectFile:[19,2,1,""],append:[19,2,1,""],appendRecord:[19,2,1,""],appendrecord:[19,2,1,""],bertlv_data:[19,2,1,""],content:[19,2,1,""],create:[19,2,1,""],createFile:[19,2,1,""],current:[19,2,1,""],currentDF:[19,2,1,""],currentEF:[19,2,1,""],data:[19,2,1,""],dataObjectHandlingDecodeEncapsulated:[19,2,1,""],dataObjectHandlingDecodePlain:[19,2,1,""],dataUnitsDecodeEncapsulated:[19,2,1,""],dataUnitsDecodePlain:[19,2,1,""],decrypt:[19,2,1,""],deleteFile:[19,2,1,""],dfname:[19,2,1,""],encodeFileControlParameter:[19,2,1,""],encrypt:[19,2,1,""],eraseBinaryEncapsulated:[19,2,1,""],eraseBinaryPlain:[19,2,1,""],eraseRecord:[19,2,1,""],erasebinary:[19,2,1,""],fid:[19,2,1,""],filedescriptor:[19,2,1,""],firstSFT:[19,2,1,""],getDataEncapsulated:[19,2,1,""],getDataPlain:[19,2,1,""],getMF:[19,2,1,""],getdata:[19,2,1,""],getpath:[19,2,1,""],lifecycle:[19,2,1,""],makeFirstSoftwareFunctionTable:[19,2,1,""],makeSecondSoftwareFunctionTable:[19,2,1,""],named_dfs:[19,2,1,""],parent:[19,2,1,""],putDataEncapsulated:[19,2,1,""],putDataPlain:[19,2,1,""],putdata:[19,2,1,""],readBinaryEncapsulated:[19,2,1,""],readBinaryPlain:[19,2,1,""],readRecordEncapsulated:[19,2,1,""],readRecordPlain:[19,2,1,""],readbinary:[19,2,1,""],readrecord:[19,2,1,""],recordHandlingDecode:[19,2,1,""],remove:[19,2,1,""],searchBinaryEncapsulated:[19,2,1,""],searchBinaryPlain:[19,2,1,""],secondSFT:[19,2,1,""],select:[19,2,1,""],selectFile:[19,2,1,""],simpletlv_data:[19,2,1,""],updateBinaryEncapsulated:[19,2,1,""],updateBinaryPlain:[19,2,1,""],updateRecordEncapsulated:[19,2,1,""],updateRecordPlain:[19,2,1,""],updatebinary:[19,2,1,""],updaterecord:[19,2,1,""],writeBinaryEncapsulated:[19,2,1,""],writeBinaryPlain:[19,2,1,""],writeRecord:[19,2,1,""],writebinary:[19,2,1,""],writerecord:[19,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexOS":{SAM:[19,2,1,""],execute:[19,2,1,""],formatResult:[19,2,1,""],getATR:[19,2,1,""],getResponse:[19,2,1,""],makeATR:[19,2,1,""],makeThirdSoftwareFunctionTable:[19,2,1,""],mf:[19,2,1,""],powerDown:[19,2,1,""],powerUp:[19,2,1,""],reset:[19,2,1,""],seekable:[19,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSAM":{FSdecrypt:[19,2,1,""],FSencrypt:[19,2,1,""],_get_referenced_key:[19,2,1,""],change_reference_data:[19,2,1,""],erase_SE:[19,2,1,""],external_authenticate:[19,2,1,""],generate_public_key_pair:[19,2,1,""],get_card_number:[19,2,1,""],get_challenge:[19,2,1,""],internal_authenticate:[19,2,1,""],manage_security_environment:[19,2,1,""],mutual_authenticate:[19,2,1,""],parse_SM_CAPDU:[19,2,1,""],perform_security_operation:[19,2,1,""],pezorform_security_operation:[19,2,1,""],protect_result:[19,2,1,""],restore_SE:[19,2,1,""],set_MF:[19,2,1,""],set_asym_algorithm:[19,2,1,""],store_SE:[19,2,1,""],verify:[19,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSE":{_set_SE:[19,2,1,""],compute_cryptographic_checksum:[19,2,1,""],compute_digital_signature:[19,2,1,""],decipher:[19,2,1,""],encipher:[19,2,1,""],generate_public_key_pair:[19,2,1,""],hash:[19,2,1,""],manage_security_environment:[19,2,1,""],parse_SM_CAPDU:[19,2,1,""],perform_security_operation:[19,2,1,""],protect_response:[19,2,1,""],verify_certificate:[19,2,1,""],verify_cryptographic_checksum:[19,2,1,""],verify_digital_signature:[19,2,1,""]},"virtualsmartcard.cards.ePass":{PassportSAM:[20,1,1,""],ePass_SE:[20,1,1,""]},"virtualsmartcard.cards.ePass.PassportSAM":{FSdecrypt:[20,2,1,""],FSencrypt:[20,2,1,""],__computeKeys:[20,2,1,""],_get_referenced_key:[20,2,1,""],change_reference_data:[20,2,1,""],derive_key:[20,2,1,""],erase_SE:[20,2,1,""],external_authenticate:[20,2,1,""],generate_public_key_pair:[20,2,1,""],get_card_number:[20,2,1,""],get_challenge:[20,2,1,""],internal_authenticate:[20,2,1,""],manage_security_environment:[20,2,1,""],mutual_authenticate:[20,2,1,""],parse_SM_CAPDU:[20,2,1,""],perform_security_operation:[20,2,1,""],protect_result:[20,2,1,""],restore_SE:[20,2,1,""],set_MF:[20,2,1,""],set_asym_algorithm:[20,2,1,""],store_SE:[20,2,1,""],verify:[20,2,1,""]},"virtualsmartcard.cards.ePass.ePass_SE":{_set_SE:[20,2,1,""],compute_cryptographic_checksum:[20,2,1,""],compute_digital_signature:[20,2,1,""],decipher:[20,2,1,""],encipher:[20,2,1,""],generate_public_key_pair:[20,2,1,""],hash:[20,2,1,""],manage_security_environment:[20,2,1,""],parse_SM_CAPDU:[20,2,1,""],perform_security_operation:[20,2,1,""],protect_response:[20,2,1,""],verify_certificate:[20,2,1,""],verify_cryptographic_checksum:[20,2,1,""],verify_digital_signature:[20,2,1,""]},"virtualsmartcard.utils":{APDU:[22,1,1,""],C_APDU:[22,1,1,""],R_APDU:[22,1,1,""],_make_byte_property:[22,3,1,""],hexdump:[22,3,1,""],inttostring:[22,3,1,""],stringtoint:[22,3,1,""]},"virtualsmartcard.utils.APDU":{_deldata:[22,2,1,""],_format_parts:[22,2,1,""],_getdata:[22,2,1,""],_setbyte:[22,2,1,""],_setdata:[22,2,1,""],data:[22,2,1,""]},"virtualsmartcard.utils.C_APDU":{"case":[22,2,1,""],CLA:[22,2,1,""],INS:[22,2,1,""],Lc:[22,2,1,""],Le:[22,2,1,""],P1:[22,2,1,""],P2:[22,2,1,""],_deldata:[22,2,1,""],_format_fields:[22,2,1,""],_format_parts:[22,2,1,""],_getdata:[22,2,1,""],_setbyte:[22,2,1,""],_setdata:[22,2,1,""],cla:[22,2,1,""],data:[22,2,1,""],effective_Le:[22,2,1,""],ins:[22,2,1,""],lc:[22,2,1,""],le:[22,2,1,""],p1:[22,2,1,""],p2:[22,2,1,""],parse:[22,2,1,""],render:[22,2,1,""]},"virtualsmartcard.utils.R_APDU":{SW1:[22,2,1,""],SW2:[22,2,1,""],SW:[22,2,1,""],_deldata:[22,2,1,""],_format_fields:[22,2,1,""],_format_parts:[22,2,1,""],_getdata:[22,2,1,""],_getsw:[22,2,1,""],_setbyte:[22,2,1,""],_setdata:[22,2,1,""],_setsw:[22,2,1,""],data:[22,2,1,""],parse:[22,2,1,""],render:[22,2,1,""],sw1:[22,2,1,""],sw2:[22,2,1,""],sw:[22,2,1,""]},virtualsmartcard:{CardGenerator:[9,0,0,"-"],ConstantDefinitions:[10,0,0,"-"],CryptoUtils:[11,0,0,"-"],SEutils:[12,0,0,"-"],SWutils:[13,0,0,"-"],SmartcardFilesystem:[14,0,0,"-"],SmartcardSAM:[15,0,0,"-"],TLVutils:[16,0,0,"-"],VirtualSmartcard:[17,0,0,"-"],utils:[22,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","exception","Python exception"],"5":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:exception","5":"py:attribute"},terms:{"0000":[12,20,22],"03119":2,"05_":3,"07_":3,"0x00":[7,12,20],"0x00000000":6,"0x00000001":6,"0x01":[2,7],"0x02":[2,7],"0x03":2,"0x04":[2,7],"0x0c":[14,19],"0x0d46":2,"0x0e":[14,19],"0x0f":[14,19],"0x10":2,"0x18d1":6,"0x3010":2,"0x40":19,"0x4ee1":6,"0x60":19,"0x80":[12,19,20],"0x8c7b":[6,7],"0x8e":[12,19,20],"0x9000":2,"0x9a":[2,12,19,20],"0x9e":[12,19,20],"0xa4":[7,14,19],"0xac":[12,19,20],"0xb0":[14,19],"0xb1":[14,19],"0xb2":[14,19],"0xb3":[14,19],"0xbc":[12,19,20],"0xca":[14,19],"0xcb":[14,19],"0xd0":[14,19],"0xd1":[14,19],"0xd2":[14,19],"0xd6":[14,19],"0xd7":[14,19],"0xda":[14,19],"0xdb":[14,19],"0xdc":[14,19],"0xdd":[14,19],"0xe0":[14,19],"0xe2":[14,19],"0xe4":[14,19],"0xff":[2,7,17,19],"0xxx":7,"1007":3,"1024":19,"107":3,"134010":6,"14443":4,"179":3,"188":3,"2010":3,"2011":3,"2012":3,"2019":6,"256":19,"27c3":3,"27th":3,"3083254":7,"3083586":7,"33392":3,"35963":[4,6],"35964":6,"3b80800101":4,"3uto6908061f9406236ze184226b":6,"4297":3,"512":19,"642":3,"65535":14,"7816":[0,6,12,17,19,20],"78166":7,"7_3":3,"978":3,"byte":[7,12,14,15,17,19,20,22],"case":[2,4,6,7,19,22],"class":[6,7,9,12,14,15,17,19,20,22],"default":[2,4,6],"enum":4,"f\u00fcr":3,"function":[3,7,11,14,15,17,19,20,22],"import":[1,6,7],"int":[2,4],"long":[4,7,14,19],"m\u00fcller":3,"new":[2,3,6,7,9,12,14,19,20],"null":6,"pl\u00f6tz":6,"public":[3,6,12,15,19,20],"return":[0,7,11,12,13,14,15,16,17,19,20,22],"short":[14,22],"static":[2,14,17,19,20],"switch":[2,6,12,19,20],"throw":7,"true":[14,19,22],"try":[3,7],"universit\u00e4t":3,"while":7,Bus:2,But:[6,7],DFs:[14,19],DGs:6,For:[5,6,14,19],INS:[2,22],Its:7,Near:1,One:[12,20],QES:6,SWs:7,The:[0,1,2,3,4,5,6,7,11,12,14,15,17,19,20,22],Then:6,There:[7,12],Use:[2,4,6],Used:19,Using:[1,4],Will:7,With:[0,4],__computekei:20,__generate_cryptoflex:9,__generate_epass:9,__generate_iso_card:9,__generate_npa:9,__getrecord:14,__getrecordsbyidentifi:14,__getrecordsbynumb:14,__init__:7,__recvfromvpicc:17,__replace_tag:12,__repr__:22,__sendtovpicc:17,__set_algo:12,__set_iv:12,__set_kei:12,__str__:22,__traceback__:13,_deldata:22,_format_field:22,_format_part:22,_get_referenced_kei:[15,19,20],_getdata:22,_getsw:22,_make_byte_properti:22,_makesalt:11,_selectfil:[14,19],_set_s:[12,19,20],_setbyt:22,_setdata:22,_setsw:22,a0000002471001:6,a000000397425446590201:0,a000000527210101:0,abl:[1,6,9],about:[6,7],abov:6,academictitl:6,acardemul:[0,4],access:[0,2,4,5,6,12,15,17,19,20],accessori:1,accord:[7,12,14,17,19,20],accordingli:6,act:[6,7],activ:4,actual:[4,5,7],add:[2,4,6,7,12],add_data:7,added:[15,19,20],addit:[4,6],addition:[2,4,6],address:6,adjust:[12,20],adress:22,af_inet:7,against:[4,5,6],agreement:[12,19,20],aid:4,aid_list:4,algo:11,algorithm:[11,12,15,19,20],all:[4,5,6,7,12,14,15,16,19,20],allow:[0,1,4,5,6],alreadi:12,also:[0,1,2,4,6,7,9,14,19],altern:[2,3,4,6],although:6,analyz:4,anchor:[6,12,19,20],andrea:3,android:[1,3,6,7],angriff:3,ani:[0,1,2,4,5,6,7,15,19,20],anna:6,annex:20,anoth:2,answer:[17,19],anywai:20,apart:3,apdu:[0,1,2,4,6,7,12,14,15,17,19,20,22],api:[6,7],app:[0,1,4,5,6,7],appear:[2,6],append:[11,12,14,19],append_pad:11,appendrecord:[14,19],appl:6,applet:0,applic:[0,1,2,4,5,6,17],applicationidentifi:[14,19],appropri:[1,12,19,20],apt:[2,6],architectur:6,arg:[7,13,14,17,19,22],argument:6,argz:[14,19],around:4,arrai:6,articl:6,asctim:7,aspect:3,assign:[14,22],assignlogicalchannel:[17,19],associ:[12,20],assum:7,asym:12,atexit:7,atr:[4,7,17,19],attach:[0,1,5],attack:[4,5,7],attempt:6,attribut:[14,19,22],auf:3,authent:[12,15,19,20],authenticate_head:[12,19,20],authentisierung:3,author:6,autodetect:[2,4],automat:[2,6,17,19],autoreconf:[2,4,6],autotool:6,auxiliari:[2,4,6],avail:[0,2,3,4,5,6,7,14,19],avoid:7,bac:6,back:[1,4,7,17],backend:4,bar:5,base:[0,2,4,9,12,13,14,15,17,19,20,22],basic:20,basicconfig:7,basiert:3,been:7,befor:7,begin:[14,19],being:6,below:[4,6],ber:[14,19],berlin:3,bertlv:16,bertlv_data:[14,19],bertlv_pack:16,bertlv_unpack:16,besitz:3,best:[4,7],better:7,between:[0,2,6,17,19],big:[7,12,19,20],bin:6,binari:[6,14,19,22],birthnam:6,bit:[11,14,19],bitmask:[12,19,20],bitstr:[17,19],bix:6,bixvread:6,bixvreaderinstal:6,bleed:[2,4,6],block:[7,11,15,19,20],blocklen:11,bndl:6,bool:[14,17,19],bootstrap:6,both:2,box:2,bring:6,brows:[0,3,5],bsi:2,buffer:7,bug:[2,4,6,7],build:[0,1,2,4,5],building_gadget_usb_modul:2,built:[0,2,4,5,6],bund:2,bundl:6,bz2:2,c_apdu:22,ca_kei:[6,7,17],calcul:[4,11,17,19,20],calculate_mac:11,call:[7,14],camera:[0,5],can:[0,2,3,4,5,6,7,14,19],capabl:[14,17,19],capdu:[12,15,17,19,20],card:[8,9,12,14,15,17,19,20],card_typ:[7,9,17],cardaccess:6,cardconnectionexcept:7,cardgener:[7,8],cardnumb:15,cardsecret:15,cardsecur:6,cardtyp:7,cbc:11,ccc:3,ccid:3,cct:12,cer:6,cert:6,certif:[1,6,12,19,20],certifc:6,certmgr:6,cfbundledevelopmentregion:6,cfbundleexecut:6,cfbundleinfodictionaryvers:6,cfbundlenam:6,cfbundlepackagetyp:6,cfbundlesignatur:6,cfbundlevers:6,challeng:[15,19,20],chang:[2,4,6,15,19,20],change_reference_data:[15,19,20],channelid:6,chao:3,charact:[17,19],check:[2,4,6,7,15,19,20],checksum:[11,12,19,20],chip:6,chipkartenles:3,choic:5,choos:[0,1,4,5,6],chosen:6,chr:7,chv:[15,19,20],cipher:[11,15,19,20],cipherspec:11,citi:6,cla:[2,22],cleanup:7,click:6,client:2,clone:[0,1,2,3,4,5,6],close:7,club:3,code:[0,2,5,6,7,12,14,16,19,20,22],codeproject:6,com:[0,1,2,3,4,5,6,7],combin:[2,4,12],come:7,command:[0,1,2,4,6,7,12,14,15,17,19,20,22],commandchaing:[17,19],commandlin:6,commun:[0,1,3,4,5,6,7,17],communityid:6,compar:19,compat:2,compil:[0,1,2,4,5,6],complet:[4,6,7],complex:7,comput:[0,3,5,6,11,12,19,20],compute_cryptographic_checksum:[12,19,20],compute_digital_signatur:[12,19,20],concern:[3,4,5],conf:[6,7],config:[2,4,5,6,12],configur:[0,2,4,5,7,12],congress:3,connect:[0,1,3,4,5,6,7,17],connector:[4,6],connecttoport:[7,17],consecut:22,constantdefinit:8,contact:[4,6],contactless:0,contain:[6,12,14,15,19,20],content:[7,9,12,14,19,22],context:7,contribut:[0,1,2,4,5,6],control:[12,14,19,20],controlreferencetempl:12,convent:[17,19],copyright:6,core:2,correct:[6,7,14,15,19,20],correctli:[15,19],correspond:[7,15],could:6,counter:[11,15,19,20],counterpart:2,countri:6,cover:[4,6],craft:2,creat:[2,3,6,14,19],createfil:[14,19],critic:7,cross:4,crt:[12,20],crypt:11,crypto_checksum:11,cryptoflex:[6,7,8,9,18],cryptoflexmf:[7,19],cryptoflexo:[7,19],cryptoflexs:19,cryptoflexsam:19,cryptograph:[11,12,19,20],cryptotokenkit:6,cryptoutil:[8,15],curl:6,current:[0,3,4,6,9,11,12,14,15,19,20],currentdf:[14,19],currentef:[14,19],custom:2,custom_url:7,cvca:[6,7,17],cyanogenmod:[0,5],cyberflex:[6,11],cycl:[14,19],cyclic:14,d2760001240102000000000000010000:0,daemon:6,data:[0,2,4,5,6,7,11,12,14,15,16,17,19,20,22],datacod:14,datagroup:9,datagroupnam:6,datagroupvalu:6,datalist:[14,16],dataobjecthandlingdecodeencapsul:[14,19],dataobjecthandlingdecodeplain:[14,19],dataset:[6,7],datasetfil:[6,7,9,17],dataunitsdecodeencapsul:[14,19],dataunitsdecodeplain:[14,19],datefmt:7,dateofbirth:6,dateofexpiri:6,dcb:[14,19],debian:[2,4,6],debug:[4,6],deciph:[12,19,20],decipher:[12,19,20],decive_unit:6,decod:[14,19],decodediscretionarydataobject:16,decodeextendedheaderlist:16,decodeheaderlist:16,decodeoffsetdataobject:16,decodetaglist:16,decor:14,decrement:[15,19,20],decrypt:[11,14,15,19,20],dedic:14,def:7,default_s:15,default_uid:2,defin:[2,15,20],deleg:[0,1,6],deletefil:[14,19],den:3,depend:[0,2,4,5,6,11,14,19,20,22],deploi:[0,1,5],deriv:[7,20],derive_kei:20,des3:11,des:3,describ:6,descriptor:[14,19],design:7,despit:4,destroypacechannel:2,detail:[6,7],detect:5,dev:[2,6],develop:[0,1,4,5],devic:[0,1,2,6],devicenam:6,devices_compatibility_matrix:4,devmgmt:6,dfname:[14,19],dfselectionbyapplication_implicit:[14,19],dfselectionbyfid:[14,19],dfselectionbyfulldfnam:[14,19],dfselectionbypartialdfnam:[14,19],dfselectionbypath:[14,19],dg12:6,dg14:6,dg15:6,dg16:6,dg21:6,dialog:1,dict:6,dictionari:12,die:3,die_gesamte_technik_ist_sich:3,differ:[3,6,7,9,11,12,20],digit:[12,19,20],direct:[17,19],directconvent:[17,19],directli:[4,6],directori:[2,6,7],disabl:6,disable_check:[7,17],disconnect:7,discuss:[4,5],disk:[7,9],dispatch:[15,17],distanc:4,distribut:4,dlitz:6,do_encrypt:11,doc:[6,14],docstr:14,doctyp:6,document:7,documenttyp:6,doe:[4,6,7,20],doi:3,dominik:[3,4],done:[4,7],doubl:6,down:[7,17,19],driver:[2,5,6],droid:[0,5],dsa:[15,19,20],dst:12,dtd:6,dummy_hcd:2,dylib:6,eac:6,each:14,earlier:6,echo:[2,6],edg:[2,4,6],edit:7,editor:3,ef_cardaccess:[6,7,17],ef_cardsecur:[6,7,17],effective_l:22,efstructure_cyclic_nofurtherinfo:7,efstructure_linear_fixed_:7,efstructure_linear_variable_:7,efstructure_transpar:7,eid:3,einem:3,either:[0,12,14,19,20],electron:[0,6],element:6,elementari:14,elif:7,els:7,email:6,emul:[3,7,17],enabl:[2,3,4,6],enciph:[12,19,20],encipher:[12,19,20],encod:[6,7,12],encodebertlvdatalist:16,encodedataoffsetobject:16,encodediscretionarydataobject:16,encodefilecontrolparamet:[14,19],encrypt:[7,9,11,14,15,19,20],end:[12,14,19,20],endian:7,engin:3,english:6,ensur:6,enter:[6,15,19,20],entir:7,entri:2,environ:[4,6,12,15,19,20],epass:[7,8,18],epass_s:20,epassport:20,equal:[14,15,19,20],eras:[12,14,15,19,20],erase_s:[15,19,20],erasebinari:[14,19],erasebinaryencapsul:[14,19],erasebinaryplain:[14,19],erasefrom:14,eraserecord:[14,19],eraseto:14,erik:0,eriknellessen:0,err_incorrectparamet:7,err_wronglength:7,error:[2,7,14,19],erweiterung:3,esign:6,esign_ca_cert:[6,7,17],esign_cert:[6,7,17],esign_kei:[7,17],especi:[4,5],establish:[5,6],establishpacechannel:2,establishpacechannelinput:2,establishpacechanneloutput:2,etc:[6,7],even:[7,14,19],everi:6,exampl:[2,4,6,22],except:[7,13],exe:6,execut:[6,7,17,19],exist:[0,4,7],exit:[2,4,6,7],expect:7,explain:4,explor:6,expon:19,extend:[3,6,7],extended_length:17,extendedl:[17,19],extens:1,extern:[6,12,19,20],external_authent:[15,19,20],extra_fci_data:14,f276a288bcfba69d34f31001:0,fabio:6,fail:7,fals:[6,7,14,16,17,19,22],familynam:6,far:6,fci:[14,19],fdb:7,fdid:[0,5],featur:3,feature_execute_pac:2,feature_modify_pin_direct:2,feature_verify_pin_direct:2,feedback:[0,1,2,4,5,6],feel:6,fetch:[0,1,5,7],fid:[7,14,19],field:[1,12,19,20,22],file:[0,2,4,5,6,7,9,14,15,17,19],filedescriptor:[7,14,19],filenam:2,filesystem:[9,15,19,20],fill:9,find:[2,4,6,7,16],firewal:7,first:[6,7,14,19],firstsft:[14,19],firstsoftwar:[14,19],fix:14,fmd:[14,19],focu:6,follow:[0,2,3,4,5,6,7,14,19],foreground:4,form:[4,9,11,15,19,20],format:7,formatresult:[7,17,19],forwar:4,forward:[2,7,17],forwared:2,foss:3,fragment:2,framework:6,frank:[2,3,4],frankmorgn:[0,1,2,3,4,5,6],fraunhof:3,free:6,freerunn:2,friendlynam:6,from:[0,1,2,3,4,5,6,7,9,12,14,15,17,19,20],fsdecrypt:[15,19,20],fsencrypt:[15,19,20],fukuchi:6,full:[4,5,22],futur:[15,19,20],g_ether:2,gadget:2,gear:1,gener:[0,2,4,5,6,7,9,11,12,14,15,19,20,22],generate_public_key_pair:[12,15,19,20],generatecard:9,german:[0,2,4,5,6],gertrud:6,gesamt:3,get:[2,4,6,7,9,14,19],get_card_numb:[15,19,20],get_challeng:[15,19,20],get_ciph:11,get_cipher_blocklen:11,get_cipher_keylen:11,get_index:14,get_referenced_ciph:15,getatr:[7,17,19],getcard:[7,9],getdata:[14,19],getdataencapsul:[14,19],getdataplain:[14,19],getfile_byrefdataobj:14,getmf:[14,19],getpath:[14,19],getreaderpacecap:2,getrespons:[17,19],getsocknam:7,gg487509:2,gid:0,gidsapplet:0,giovanni:3,git:[0,1,2,3,4,5,6],github:[0,1,2,3,4,5,6],give:[6,7],given:[4,7,12,14,15,16,17,19,20],givennam:6,global:[12,15,19,20],gmail:2,gnu:[2,4,6],gpl:[0,1,2,4,5,6],group:[6,7],guess:6,gui:6,guid:[1,3,6],guidelin:1,guidelines_on_connecting_gears2_device_using_wifi_151222:1,handi:3,handl:[3,7,14,19],handleinpdu:7,handleoutpdu:7,handler_test:[6,7],handlertest:7,handlertesto:7,hardwar:[0,2,4,5,6],has:[0,2,4,5,7,14,19],hasfixedrecords:14,hash:[11,12,19,20],hashmap:15,hashmethod:11,hassimpletlv:14,have:[0,1,2,3,4,5,6,7],hce:[0,1],header:[2,4,12,19,20],header_authent:[15,19,20],headless:1,heidelberg:3,help:[2,4,6],henryk:6,here:[2,3,4,6,7],hexdump:22,histchar:[17,19],histor:[14,17,19],hmac:11,holder:6,honor:14,hook:7,host:[0,2,4,5,6,7,17],hostnam:[4,6,7],how:[2,4,7],html:[0,1,2,3,5,6],http:[0,1,2,3,4,5,6,7],humboldt:3,icao:[9,11,20],icc:20,ident:[0,6],identifi:[0,4,14,15,19,20],identifier_first:14,identifier_last:14,identifier_next:14,identifier_previ:14,iec:4,ifd:6,ifdcap:6,ifdfriendlynam:6,ifdmanufacturerstr:6,ifdproductid:6,ifdproductstr:6,ifdprotocolsupport:6,ifdread:6,ifdvendorid:6,ifdversionnumb:6,imag:6,impact:[4,5],implement:[0,2,6,12,19,20],implicitli:7,importerror:7,inact:6,includ:[0,1,3,4,6,7,12,15,19,20],include_fil:16,incom:[4,6],incomplet:6,indent:[14,22],index:[4,14,15,19],index_curr:[14,19],index_htm:2,indic:[12,19,20],info:[2,6,7],infoplist:6,inform:[3,12,14,15,19,20],informat:3,informatik:3,informationstechnologi:3,ini:6,init:[0,2,4,6],initi:[0,1,2,6,7,11,12,14,20],inpterpret:7,input:11,ins2handl:[17,19],ins:[7,17,19,22],insert:4,insight:7,insmod:2,inspect:6,instanc:[14,16],instead:[0,6,22],institut:3,instruct:[14,19],integ:[14,19],integr:6,interact:[6,9],interfac:[0,2,5,6,17,19],intermediari:2,intern:[12,15,19,20],internal_authent:[15,19,20],internet:6,interrupt:2,inttostr:[7,22],invalid:[6,7,15,19,20],invers:[17,19],invok:[12,19,20],involv:14,ioanni:3,iscycl:14,isequ:14,isinst:7,iso7816:[6,7],iso7816o:[7,17,19],iso:[0,4,6,12,17,19,20,22],isoapplet:0,issimpletlv:[14,19],issu:[2,4,6],issuingst:6,ist:3,item:14,its:[2,4,6,7,12,14,19,20],itself:7,java:0,jcardsim:0,jen:3,join:7,jump:6,kdir:2,kei:[6,7,11,12,15,19,20],kernel:2,keycard:0,keytyp:[15,19,20],killal:6,kind:[0,1,2,4,5,6,12,19,20],kitkat:[0,5],know:[6,7],knowledg:7,krontiri:3,kwarg:22,l898902c:6,last:[11,14,19],lastcommandoffcut:7,lastcommandsw:7,later:[2,4,6,7,19],latest:[2,3,4,6],layer:6,lead:6,learn:6,least:6,lectur:3,len:[7,17,19],len_extend:22,length:[7,11,12,14,16,19,22],less:[4,6],let:7,level:7,levelnam:7,lian:3,lib:[2,4,6],libccid:2,libeac:6,libexec:6,libifdvpcd:6,libopensc:2,libpath:6,libpcsclit:6,libqrencod:6,librari:[3,6],libtool:[2,4,6],licens:[0,1,2,4,5,6],life:[14,19],lifecycl:[14,19],like:[2,4,6],line:[2,6,22],linelen:22,link:[2,6],linuxtag:3,list:[2,4,6,7,14,16,19],listen:4,listread:7,lite:[4,6],littl:7,load:[2,6,7],loadmitmfrompath:[7,17],local:[2,6],local_ip:7,localhost:6,localmachin:6,locat:[3,4],log:[6,7],logginglevel:[7,17],logic:14,look:[0,2,3,4,6,7,14],loop:17,lost:7,mac:[11,12,19,20],machin:[2,6,20],maco:6,magic:7,mai:[0,1,4,6,11,12,15,19,20],mail:6,main:[4,6,7,17],maintain:17,make:[2,4,6,22],make_properti:14,makeatr:[17,19],makefil:2,makefirstsoftwarefunctiont:[14,19],makesecondsoftwarefunctiont:[14,19],makethirdsoftwarefunctiont:[17,19],man:6,manag:[6,7],manage_security_environ:[12,15,19,20],mani:16,manipul:[12,19,20],manual:[0,1,5],map:[7,19],marix:6,mass:6,master:[3,14,15,17,19],match:[4,6,14],max:[11,17,19],maximum:[14,15,19,20],maximumchannel:[17,19],maxl:[7,19],maxrecords:[7,14],maxsiz:14,mayb:2,mean:[6,7,11,12,15,17,19,20],mechan:[12,19,20],media:3,memori:[15,19,20],messag:[6,7,11,12,15,17,19,20],meta:22,method:[9,12,15,19,20],microsoft:[2,4,6],middl:6,middlewar:2,might:[7,15,19,20],min:7,mingw:4,miss:[2,4,6],mitm:[6,7],mitmpath:[7,17],mkdir:2,mmc:6,mmo11:3,mo10:3,mobil:[2,3],mobilen:3,mode:[2,4,5,6,7,11,12,15],modern:[2,4],modif:[2,7],modifi:[2,4,7,12],modprob:2,modul:[2,4,6,8,18],momr12:3,mor12:3,more:[0,1,2,4,5,6,7,12,20],morgner:[2,3,4],most:[2,4,7,16],mostli:7,mount:2,mous:6,mrtd:[6,20],mrz:[6,9],msc:6,msdn:2,mse:12,msg:[7,17,19],msi:6,multipl:[2,6,7],must:[2,4,5,6,7,9,11,12,14,19,20],mutual_authent:[15,19,20],mutual_challeng:[15,19,20],name:[4,6,14,19,22],named_df:[14,19],nation:6,nativ:[1,4],necessari:4,need:[0,1,2,4,5,6,7,15,19,20],neither:[14,19],nellesson:0,neo:2,net:[0,6],network:[5,7],neuen:3,new_fil:7,newer:[0,5],newli:14,newlist:14,newtlvlist:[14,19],newvalu:[14,16],next:[1,14,19],nfc:[0,1,3,4,5,6,7],nice:22,nobodi:20,nofurtherinfo:7,none:[7,9,11,14,15,16,17,19,20,22],nor:[14,19],normal:[7,19],normal_rest:7,note:[3,7,14,17,19,20],noth:[12,19,20],notif:2,now:[2,4,6,15,19,20],npa:[0,3,6,7,8,18],npao:7,num_id:14,num_result:16,number:[2,4,6,7,14,15,19,20],numread:6,oath:0,obj:2,object:[7,9,12,14,15,17,19,20,22],occur:[14,19],odd:[14,19],oep10:3,oepen:[3,4],off:[2,7],offer:3,offset:[14,16,19,22],old:[3,14],older:[2,3,4,6],om11:3,omit:[17,19],onc:6,one:[4,5,12,14,19,20,22],onetimewrit:14,onli:[2,4,7,11,14,19,20],open:[0,5,6,7,17],openmoko:[2,4,6],openpac:6,openpcd:4,openpgp:0,openpicc:4,openport:[7,17],opensc:[2,6],openssl:2,oper:[4,11,12,14,19,20],operation_on_str:11,option:[2,4,6,9,11,17,19],ord:7,order:[2,7,12,14,15,19,20],org:[0,1,2,4,5,6],other:[2,5,6,12,15,19,20],otherwis:[4,12,14,19],ottavi:6,our:[0,1,2,3,4,5,6,7,22],out:[2,7],output:6,over:[4,5,6,7],overview:[6,7],overwrit:[7,22],own:[0,1,6],pace:[0,2,6],pacecap:2,pack:16,pad:[11,12,19,20],padding_class:11,pair:[12,20],parallel:6,param:14,paramet:[11,12,14,15,17,19,20],parent:[7,14,19],pariti:20,pars:[7,12,15,19,20,22],parse_se_config:12,parse_sm_capdu:[12,15,19,20],part:[3,6,14],partial:[14,19],pass:[7,17],passport:[0,6,9,11,20],passportsam:20,patch:2,path:[6,7,9,14,15,17,19],pbkdf2:6,pc_to_rdr_secur:2,pc_to_rdr_xfrblock:2,pcd:[6,7,17],pcsc:[0,4,6],pcsc_scan:6,pcscd:[6,7],pcsclite:[4,6],pdf:[1,3],perform:[2,4,6,12,17,19,20],perform_bac:6,perform_security_oper:[12,15,19,20],period:6,permiss:[0,5],persist:9,personalauswei:3,peter:3,pezorform_security_oper:19,phone:[6,7],photo:9,php:4,physic:7,piec:14,pil:6,pin:[0,2,15,19,20],pip:6,pipe:[2,6],pkc:6,pkg:[2,4,6],pkg_config_path:4,pkgconfig:4,pki:20,place:6,placeofbirth:6,plain:[12,15,19,20],platform:[0,1,2,4,5,6],pleas:[0,1,2,4,5,6],plist:6,plug:6,point:14,pointer:14,port:[4,6,7,17],portabl:2,posess:[15,19,20],possibl:[0,2,4,6],power:[7,17,19],powerdown:[7,17,19],powerup:[7,17,19],predic:6,prefix:4,prepend:[11,14,19],present:2,pretend:6,pretti:7,prettyprint_anyth:14,previou:[14,19],previous:[7,12,20],print:[2,4,5,6,7],print_ascii:7,privaci:3,privat:[6,12,15,19,20],probabl:[2,4,6],problem:6,process:[0,1,4],produc:17,product:[2,6],program:[1,3,6,7],programmingguide_accessori:1,project:[0,1,2,3,4,5,6],prompt:9,prop:[14,22],properti:[14,17,19,22],propertylist:6,proprietari:[2,6,14],protect:[0,6,12,15,19,20],protect_respons:[12,19,20],protect_result:[15,19,20],protocol:[0,1,6,7,17,19,20],prove:[15,19,20],provid:[6,7,12,20],pseudo:2,pseudorandom:11,publikationen:2,publish:6,puk:[15,19,20],purpos:4,put:[14,19],putdata:[14,19],putdataencapsul:[14,19],putdataplain:[14,19],pwd:2,pwendland:0,pycryptodom:6,pycryptodomex:6,pypa:6,pypi:6,pyreadlin:6,pyscard:[6,7],python2:6,pythonwar:6,qrcode:7,qrencod:6,qrserver:7,quickli:6,quit:7,r_apdu:[7,22],rais:[7,14,19],random:[2,15,19,20],randomli:6,rapdu:[7,17],raw:[12,19,20],rdr_to_pc_datablock:2,read:[6,7,9,14,19,20],readabl:20,readbinari:[14,19],readbinaryencapsul:[14,19],readbinaryplain:[14,19],readdatagroup:[7,9],reader0:6,reader1:6,reader2:6,reader:[0,1,3,4,6,7],readernum:[7,17],readlin:6,readpass:6,readrecord:[14,19],readrecordencapsul:[14,19],readrecordplain:[14,19],real:[2,4,6,7],realiz:4,recalculate_length:16,receiv:[4,7,17],recent:2,recogn:7,reconnect:7,record:[7,14,19],recordhandlingdecod:[7,14,19],recordidentifiersupport:[14,19],recordnumbersupport:[14,19],recordpoint:14,recordstructureef:[7,14,19],recurs:[0,2,4,6,14],redlich:3,ref:14,refdataobj:14,refer:[12,14,15,19,20],referenc:[15,19,20],regard:[14,19],regist:[1,4,6,7],rel:6,relai:[0,3,5,6,7],relaymiddleman:7,relayo:7,releas:[2,3,4,6],religiousartisticnam:6,remot:[0,3,4,6],remotesmartcardread:[0,5],remov:[6,12,14,19,20],render:[7,22],replac:[6,12,14,15,19,20],report:[2,4,6],repositori:[0,2,3,4,5,6],repres:22,represent:14,request:[3,6,7,14],requestedtl:[14,19],requir:[0,2,5,6,7,20],requiremet:6,res:4,research:3,reset:[7,14,15,17,19,20],resetrecordpoint:14,residencepermit1:6,residencepermit2:6,resp_data:20,respect:7,respons:[0,1,2,4,6,7,9,12,14,15,17,19,20,22],respsons:17,ressourc:1,rest:7,restart:6,restor:[12,15,19,20],restore_s:[15,19,20],result:[7,12,14,16,17,19,20],retri:[15,19,20],retriev:[15,19,20],revers:[6,7],rfid:4,rfu:[15,19,20],right:[15,19,20],root:6,routin:6,rpc_type:6,rsa:[15,19,20],run:[0,2,4,5,7,17],runtim:0,russello:3,sai:6,said:7,salt:11,sam:[7,9,12,14,15,17,19,20],same:[6,7],samsung:1,saniti:4,sar:3,save:6,scan:[0,5,7],scanner:5,scardcontrol:2,scardtransmit:2,schmidt:3,scienc:3,script:6,sdk:[0,1,5,6],search:[14,19],searchbinaryencapsul:[14,19],searchbinaryplain:[14,19],second:[14,19],secondsft:[14,19],secondsoftwar:[14,19],secret:[11,15,19,20],section:4,secur:[2,3,6,7,12,15,17,19,20],security_environ:[12,15,19,20],see:[2,4,6,7,14,17,19],seed:20,seekabl:[7,17,19],seid:[12,15,19,20],select:[0,1,4,5,7,11,14,17,19],select_appl:6,selectfil:[14,19],self:[7,13],send:[1,4,7,11,12,17,19,20],sendcommandapdu:7,sent:[4,7],seper:6,sequenc:[11,20],sequenti:14,serial:[2,6],server_sock:7,servic:[1,6],session:7,session_kei:11,set:[4,6,9,12,13,14,17,19,20],set_asym_algorithm:[15,19,20],set_mf:[15,19,20],setcard:9,setter:[15,19,20],settimeout:7,seutil:[8,15,19,20],sever:[2,4,6],sex:6,shall:[6,12,19,20],shell:6,shiguo:3,ship:[2,4,6],shortfid:14,shortfidsupport:[14,19],should:[4,6,7,12,14,19,20],show:6,sicher:3,sicherheitsanalys:3,sigkil:6,sign:[6,12,19,20],signatur:[6,12,19,20],similar:7,simpl:[0,6,7,14,19],simpletlv:16,simpletlv_data:[14,19],simpletlv_pack:16,simpletlv_unpack:16,simpli:[6,7],simul:[0,1],sinc:2,sit:3,six:12,size:[11,14,19],sln:6,slot:6,sm_header:[12,19,20],small:6,smart:17,smartcard:[3,5,6,7,14,17],smartcardfilesystem:[8,19],smartcardo:[7,17,19],smartcardsam:[8,19,20],smartcardservic:6,smartphon:[0,3,5],smartwatch:0,snapshot:2,social:3,sock:7,sock_dgram:7,socket:[0,6,7,17],softwar:[2,4,5,6,7,14,17,19],solut:6,some:[2,3,7],someth:6,sourc:[0,1,2,5,7],sourceforg:[2,4,6,7],space:22,special:[2,5],specif:[7,15,19,20],specifi:[4,6,7,11,12,14,15,16,19,20],specifii:6,springer:3,spsmartcardsdatatyp:6,spusbdatatyp:6,src:[2,4],ssc:[11,20],stabl:6,stack:2,stai:4,standalon:6,standard:[2,4,6,7,20],start:[2,4,6,14],startup:6,state:14,statu:[2,14,19,22],step:6,still:[2,3,4,6],stop:[6,7,17],storag:[6,9],store:[6,12,15,19,20],store_s:[15,19,20],str:7,straight:7,street:6,string1:11,string2:11,string:[2,4,6,7,11,12,14,15,16,17,19,22],stringtoint:[7,22],strip:11,strip_pad:11,structur:[14,16],studio:[0,4,5,6],stuttgart:3,subdir:2,submodul:[0,1,2,4,6],subset:2,subsystem:6,success:[15,19,20],successful:7,successfulli:6,sudo:[2,6],suggest:[0,1,2,4,5,6],suitabl:11,sun:4,support:[2,4,6,9,11,12,19],suppos:6,sure:[6,7],sw1:[2,7,22],sw2:[2,7,22],swerror:[7,13],swutil:8,sym:12,syntax:6,sys:7,sysconfdir:6,system:[2,3,4,5,6,7,15],system_profil:6,systemroot:6,szenario:3,t15:[17,19],tabl:[12,14,17,19,20],tag:[6,12,14,16,19,20],tagungsband:3,tai:[17,19],taj:[17,19],take:[14,15,19,20],taken:6,tar:2,target:6,tbi:[17,19],tbj:[17,19],tcardemul:1,tci:[17,19],tcj:[17,19],tck:[17,19],tcp:[6,14,19],tcp_port:6,tdi:[17,19],tech:1,techdoc:1,technik:3,technischerichtlinien:2,telecommun:3,templat:[7,12,14,19,20],term:6,termin:[0,4,12,15,19,20],test:[0,1,2,4,5],tester:6,text:19,than:[0,1,2,4,5,6],thehistor:[14,19],thei:[6,11,12],them:[0,17],themselv:3,therefor:9,thesi:3,thi:[2,4,5,6,7,9,11,12,14,15,17,19,20,22],thing:[7,14],third:[17,19],those:7,through:[0,2,6],time:[2,4,6,7],tip:1,titl:4,tizen:[0,3],tlv:[12,14,16,19,20],tlv_data:16,tlv_find_tag:16,tlv_unpack:16,tlvutil:8,tmp:4,to_str:12,togeth:[0,4],tool:[1,2,4,6],toolset:6,tr03119:2,tracker:[0,1,2,4,5,6],tradit:[5,6],transmiss:[17,19],transmit:[0,2,4,7],transpar:14,transparentstructureef:[7,14,19],tri:6,trust:[2,6,12,19,20],trustedpublish:6,tupl:[14,16,19],two:[14,19],txt:6,type:[3,6,9,11,12,15,19,20],ubuntu:[2,4,6],udc:2,ulrich:3,umbrella:3,umdf:6,umfeld:3,unam:2,und:3,under:[15,19,20],understood:15,unfamiliar:[2,4,6],unit:[14,19],univers:2,unix:5,unknown:[7,14,19],unpack:16,unplug:6,unprotect:[12,15,19,20],unprotected_result:[15,19,20],until:[15,19,20],updat:[0,2,4,6,14,19],updatebinari:[14,19],updatebinaryencapsul:[14,19],updatebinaryplain:[14,19],updaterecord:[14,19],updaterecordencapsul:[14,19],updaterecordplain:[14,19],url:[3,6],usabl:[2,3],usag:6,usb:[3,6],use:[0,1,2,4,5,6,7,11,12,14,15,17,19,20],used:[0,2,4,5,6,7,9,11,12,14,15,19,20,22],useful:1,user:[2,6,9,15,19,20],uses:[0,1,2,4,6,20],using:[0,1,2,3,4,5,6,7,12,14,15,19,20],usr:[2,6],usual:[2,6,7,14],utf:6,util:[6,8],utoeriksson:6,valid:[6,7,15,19,20],valu:[4,6,12,14,15,17,19,20,22],variabl:14,variou:[2,3,11,12,19,20],vector:11,vendor:[2,6],vendor_ifd_typ:6,vendor_nam:6,verbos:[2,4,6],verif:[0,2,12,19,20],verifi:[0,2,6,12,15,19,20],verify_certif:[12,19,20],verify_cryptographic_checksum:[12,19,20],verify_digital_signatur:[12,19,20],verlag:3,version:[0,1,2,4,5,6,15,19,20],via:[0,1,2,4,5,6,7,11,15,17],vicc:[4,6,7,17],virtual:[0,4,5,17],virtualicc:[7,17],virtualsmartcard:[6,7,9,11,12,13,14,15,16,19,20,22],visual:[4,6],vletoux:0,volum:3,vpcd:[4,5,7,17],vpicc:[7,17],vsmartcard:[0,1,2,3,4,5,6],w64:4,wai:6,wait:[4,6],waldmann:3,walk:14,want:[0,2,3,7],warm:[17,19],warn:7,warn_noinfo63:19,wdk:6,web:3,welcom:[0,1,2,4,5,6],well:6,what:[4,7,12,14,19,20],whatev:22,when:[4,5,6,7,22],where:[2,4,5,6,7,14],wherea:2,whether:[12,15,17,19,20],which:[0,2,4,6,7,11,12,14,17,19,22],wiki:2,win32:6,window:[2,4,5],winscard:[4,6],wireless:1,wissen:3,with_mark:16,with_traceback:13,without:[0,6,11,22],wix:6,wixtoolset:6,wolf:3,word:22,work:[2,4,6,7],workaround:7,workshop:3,write:[14,19],writeand:14,writebinari:[14,19],writebinaryencapsul:[14,19],writebinaryplain:[14,19],writeor:14,writerecord:[14,19],written:[2,4],wudfhost:6,www:[0,2,4,6],x00:11,x01:7,x02:7,x03:7,x04:7,x38:7,x64:6,x82:6,xff:7,xjf:2,xml:[4,6],xor:14,xxx:7,ykneo:0,you:[0,1,2,3,4,5,6,7,14,19],your:[0,1,2,4,5,6,7],yourself:[3,7],yubico:0,zero:[15,19,20],zip:6,zone:20,zum:3,zur:3},titles:["Android Smart Card Emulator","Tizen Smart Card Emulator","USB CCID Emulator","Welcome to the Virtual Smart Card Architecture documentation!","PC/SC Relay","Remote Smart Card Reader","Virtual Smart Card","Creating a Virtual Smart Card","virtualsmartcard Package","CardGenerator Module","ConstantDefinitions Module","CryptoUtils Module","SEutils Module","SWutils Module","SmartcardFilesystem Module","SmartcardSAM Module","TLVutils Module","VirtualSmartcard Module","cards Package","cryptoflex Module","ePass Module","nPA Module","utils Module"],titleterms:{"7816":7,Use:[0,1,5],Using:6,android:[0,4,5],architectur:3,build:6,card:[0,1,2,3,4,5,6,7,18],cardgener:9,ccid:2,compliant:2,configur:6,constantdefinit:10,contact:[0,1,5],contactless:4,creat:7,cryptoflex:19,cryptoutil:11,document:3,download:[0,1,2,3,4,5,6],emul:[0,1,2,4,6],epass:[6,20],exampl:7,gadgetf:2,hint:[2,4],implement:7,instal:[0,1,2,4,5,6],interfac:4,iso:7,less:[0,1,5],libnfc:4,like:7,linux:[2,4,6],mac:6,middlewar:4,modul:[9,10,11,12,13,14,15,16,17,19,20,21,22],note:[0,1,2,4,5,6],npa:21,other:7,packag:[8,18],phone:[0,5],python:6,question:[0,1,2,4,5,6],reader:[2,5],refer:[0,1,2,3,4,5,6],relai:4,remot:5,run:6,seutil:12,similar:[2,4,6],smart:[0,1,2,3,4,5,6,7],smartcardfilesystem:14,smartcardsam:15,smartwatch:1,swutil:13,test:6,tizen:1,tlvutil:16,type:7,unix:[2,4,6],usag:[2,4],usb:2,util:22,virtual:[3,6,7],virtualsmartcard:[8,17],vpcd:6,vpicc:6,welcom:3,window:6,written:6}})
\ No newline at end of file
diff --git a/docs/virtualsmartcard/README.html b/docs/virtualsmartcard/README.html
index 19091db..ad8f464 100644
--- a/docs/virtualsmartcard/README.html
+++ b/docs/virtualsmartcard/README.html
@@ -4,7 +4,7 @@
-
Virtual Smart Card — vsmartcard 2021-04-28 documentation
+
Virtual Smart Card — vsmartcard 2023-09-27 documentation
@@ -12,10 +12,6 @@
-
-
-
-
@@ -24,6 +20,10 @@
+
+
+
+
@@ -103,7 +103,10 @@
Configuring vpcd on Unix
Configuring vpcd on Mac OS X
Configuring vpcd on Windows
-
Running vpicc
+
Running vpicc
+
Question
@@ -151,7 +154,7 @@
-
+
Virtual Smart Card
@@ -189,8 +192,25 @@ internet for example.
PC/SC Relay to make it accessible to an external contact-less smart card
reader.
The file utils.py was taken from Henryk Plötz’s cyberflex-shell .
-
New in version 0.7: The Virtual Smart Card optionally brings its own standalone implementation of
@@ -198,8 +218,24 @@ PC/SC. This allows accessing vpicc witho
implementation acts as replacement for libpcsclite which can lead to
problems when used in parallel with PCSC-Lite.
-
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.
@@ -211,10 +247,10 @@ responses via NFC to a contact-less smart card that signs the mail.
@@ -223,6 +259,8 @@ URL will be printed if libqrencode is not available)
still available on
Sourceforge .
Alternatively, you can clone our git repository:
git clone https://github.com/frankmorgner/vsmartcard.git
+cd vsmartcard
+git submodule update --init --recursive
@@ -269,10 +307,13 @@ make install
PC/SC.
For the Windows integration we extended Fabio Ottavi’s UMDF Driver for a
-Virtual Smart Card Reader with a vpcd interface. To build vpcd for
-Windows we use Windows Driver Kit 10 and Visual Studio 2015 . The vpcd
-installer requires the WiX Toolset 3.10 . If you choose
-to download the Windows binaries , you may directly jump to step 4.
+Virtual Smart Card Reader with a
vpcd interface. If you choose
+to download the
Windows binaries , you may directly jump to step 4.
+
In the CI environment, we’re building vpcd for Windows with Visual Studio
+Community 2019 with SDK/WDK for Windows 11. (The WDK version needs to match
+at least your targeted version of Windows, see this guide for installing VS
+with WDK ) The vpcd installer additionally
+requires the WiX Toolset 3.10 to be installed.
Clone the git repository and make sure it is initialized with all
submodules:
@@ -289,14 +330,23 @@ configuration manager, that the project is built for your platform (i.e.
If you can successfully Build the solution , you can find
the installer (BixVReaderInstaller.msi ) in
virtualsmartcard\win32\BixVReaderInstaller\bin\*Release
-To install vpcd , double click BixVReaderInstaller.msi . 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
-Install this driver software anyway .
+To import the installer’s test signing certificate, double click
+BixVReader.cer and add it to the Trusted Root Certification
+Authority and the Trusted Publishers at the Local Computer” (not the
+*Current User ).
+On the commandline, you could do this as follows :
+ CertMgr.exe /add BixVReader.cer /s /r localMachine root /all
+CertMgr.exe /add BixVReader.cer /s /r localMachine trustedpublisher
+
+
+Feel free to remove the certificate from the certificate stores once the
+device is installed.
+
+To install vpcd , double click BixVReaderInstaller.msi .
For debugging vpcd and building the driver with an older version of Visual
Studio or WDK please see Fabio Ottavi’s UMDF Driver for a Virtual Smart Card
-Reader for details.
+Reader for details.
All of Fabio’s card connectors are still available, but inactive by default
(see Configuring vpcd on Windows below).
@@ -454,7 +504,7 @@ to open should be specified in
Running vpicc
-
The compiled Windows binaries of vpicc include OpenPACE. The other
+
The compiled Windows binaries of vpicc include OpenPACE. The other
dependencies listed above need to be installed seperately. You can start the
vpicc via python.exe vicc.py . On all other systems an executable
script vicc is installed using the autotools.
@@ -538,8 +588,38 @@ chosen accordingly (
–hostname and
–port )
When vpcd and vpicc are connected you should be able to access the card
through the PC/SC API. You can use the opensc-explorer or
pcsc_scan for testing. In Virtual Smart Card’s root directory we also
-provide scripts for testing with npa-tool and PCSC-Lite’s smart card
+provide scripts for testing with npa-tool and PCSC-Lite’s smart card
reader driver tester.
+
+
Testing vpicc -t ePass
+
A simple tool to test BAC is available for Python 2.7. On Ubuntu, its
+requiremets are installed as follows:
+
sudo apt-get install python2.7-dev
+curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
+python2.7 get-pip.py
+python2.7 -m pip install pycryptodomex pyscard
+python2.7 readpass.py --no-gui
+git clone https://github.com/henryk/cyberflex-shell
+cd cyberflex-shell
+
+
+
Now we can create and run a small script:
+
echo "select_application a0000002471001" > script.txt
+echo "perform_bac L898902C<3UTO6908061F9406236ZE184226B<<<<<14" >> script.txt
+python2.7 cyberflex-shell.py script.txt
+
+
+
The tool will wait for a (virtual) smart card to appear. Start vpicc and make
+sure to configure it with the correct MRZ, i.e.
+P<UTOERIKSSON<<ANNA<MARIX<<<<<<<<<<<<<<<<<<<L898902C<3UTO6908061F9406236ZE184226B<<<<<14
+in this case:
+
+
Once the card is connected, cyberflex-shell will quickly perform BAC and
+exit. Running the tool without arguments allows entering in interactive mode
+to run additional tests.
+
@@ -563,39 +643,36 @@ more than welcome! Please use our
http://pyscard.sourceforge.net/
5
-
https://www.pycryptodome.org/
-
-
6
https://www.dlitz.net/software/python-pbkdf2/
-
7
+
6
https://docs.python.org/3.3/library/readline.html
-
8
+
7
https://pypi.python.org/pypi/pyreadline
-
9
+
8
http://www.pythonware.com/products/pil/
-
10
+
9
https://github.com/frankmorgner/openpace
-
11
+
10
https://fukuchi.org/works/qrencode/
-
12 (1 ,2 )
+
11 (1 ,2 )
http://www.codeproject.com/Articles/134010/An-UMDF-Driver-for-a-Virtual-Smart-Card-Reader
-
13
-
https://msdn.microsoft.com/en-us/library/windows/hardware/ff557573
+12
+
https://learn.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk
-
14
+
13
https://wixtoolset.org/releases/v3.10/stable
-
15 (1 ,2 )
-
https://github.com/frankmorgner/vsmartcard/releases/download/virtualsmartcard-0.7/virtualsmartcard-0.7_win32.zip
+14 (1 ,2 )
+
https://github.com/frankmorgner/vsmartcard/releases/tag/virtualsmartcard-0.8
-
16
+
15
https://github.com/frankmorgner/OpenSC
@@ -614,9 +691,9 @@ more than welcome! Please use our
-
Creating a Virtual Smart Card — vsmartcard 2021-04-28 documentation
+
Creating a Virtual Smart Card — vsmartcard 2023-09-27 documentation
@@ -12,10 +12,6 @@
-
-
-
-
@@ -23,6 +19,10 @@
+
+
+
+
@@ -135,7 +135,7 @@
-
+
Creating a Virtual Smart Card
@@ -270,14 +270,14 @@ is only a buffer that is forwarded to the smart card OS. First we modify
self . sock . settimeout ( None )
self . server_sock = None
except socket . error as e :
-
logging . error ( "Failed to open socket: %s " , str ( e ))
-
logging . error ( "Is pcscd running at %s ? Is vpcd loaded? Is a \
+
logging . critical ( "Failed to open socket: %s " , str ( e ))
+
logging . critical ( "Is pcscd running at %s ? Is vpcd loaded? Is a \
firewall blocking port %u ?" , host , port )
sys . exit ()
else :
# use reversed connection mode
try :
-
local_ip = [( s . connect (( '8.8.8.8' , 53 )), s . getsockname ()[ 0 ], s . close ()) for s in [ socket . socket ( socket . AF_INET , socket . SOCK_DGRAM )]][ 0 ][ 1 ]
+
local_ip = [( s . connect (( '9.9.9.9' , 53 )), s . getsockname ()[ 0 ], s . close ()) for s in [ socket . socket ( socket . AF_INET , socket . SOCK_DGRAM )]][ 0 ][ 1 ]
custom_url = 'vicc:// %s : %d ' % ( local_ip , port )
print ( 'VICC hostname: %s ' % local_ip )
print ( 'VICC port: %d ' % port )
@@ -292,8 +292,8 @@ is only a buffer that is forwarded to the smart card OS. First we modify
( self . sock , self . server_sock , host ) = self . openPort ( port )
self . sock . settimeout ( None )
except socket . error as e :
-
logging . error ( "Failed to open socket: %s " , str ( e ))
-
logging . error ( "Is pcscd running? Is vpcd loaded and in \
+
logging . critical ( "Failed to open socket: %s " , str ( e ))
+
logging . critical ( "Is pcscd running? Is vpcd loaded and in \
reversed connection mode? Is a firewall \
blocking port %u ?" , port )
sys . exit ()
@@ -339,9 +339,7 @@ completely different when creating a file on the smart card. So we derive
CryptoflexMF from
MF and modify
create to our needs.
-
def create ( p1 , p2 , data ):
-
- if data [ 0 : 2 ] != " \xff\xff " :
+ if data [ 0 : 2 ] != b " \xff\xff " :
raise SwError ( SW [ "ERR_INCORRECTPARAMETERS" ])
args = {
@@ -349,11 +347,11 @@ completely different when creating a file on the smart card. So we derive
"filedescriptor" : 0 ,
"fid" : stringtoint ( data [ 4 : 6 ]),
}
- if data [ 6 ] == " \x01 " :
+ if data [ 6 ] == b " \x01 " :
args [ "data" ] = bytes ( 0 ) * stringtoint ( data [ 2 : 4 ])
args [ "filedescriptor" ] = FDB [ "EFSTRUCTURE_TRANSPARENT" ]
new_file = TransparentStructureEF ( ** args )
- elif data [ 6 ] == " \x02 " :
+ elif data [ 6 ] == b " \x02 " :
if len ( data ) > 16 :
args [ "maxrecordsize" ] = stringtoint ( data [ 16 ])
elif p2 :
@@ -362,15 +360,15 @@ completely different when creating a file on the smart card. So we derive
args [ "filedescriptor" ] = FDB [ "EFSTRUCTURE_LINEAR_FIXED_"
"NOFURTHERINFO" ]
new_file = RecordStructureEF ( ** args )
- elif data [ 6 ] == " \x03 " :
+ elif data [ 6 ] == b " \x03 " :
args [ "filedescriptor" ] = FDB [ "EFSTRUCTURE_LINEAR_VARIABLE_"
"NOFURTHERINFO" ]
new_file = RecordStructureEF ( ** args )
- elif data [ 6 ] == " \x04 " :
+ elif data [ 6 ] == b " \x04 " :
args [ "filedescriptor" ] = FDB [ "EFSTRUCTURE_CYCLIC_NOFURTHERINFO" ]
new_file = RecordStructureEF ( ** args )
- elif data [ 6 ] == " \x38 " :
- if data [ 12 ] != " \x03 " :
+ elif data [ 6 ] == b " \x38 " :
+ if data [ 12 ] != b " \x03 " :
raise SwError ( SW [ "ERR_INCORRECTPARAMETERS" ])
new_file = DF ( ** args )
else :
@@ -378,6 +376,8 @@ completely different when creating a file on the smart card. So we derive
raise SwError ( SW [ "ERR_INCORRECTPARAMETERS" ])
return [ new_file ]
+
+ def recordHandlingDecode ( self , p1 , p2 ):
As you can see it is quite simple to extend the virtual smart card to your
@@ -393,7 +393,7 @@ magic that is done while parsing a buffer (an vpcd .
As before with the cryptoflex card, we let
VirtualICC recognize the new type
-"relay" . RelayOS overwrites all
+"relay" . RelayOS overwrites all
main functions from the template
SmartcardOS . Its functions correspond
to the commands sent by vpcd . If you know how to use
@@ -415,7 +415,7 @@ forward, but see yourself…
# See which readers are available
readers = smartcard . System . listReaders ()
if len ( readers ) <= readernum :
- logging . error ( "Invalid number of reader ' %u ' (only %u available)" ,
+ logging . critical ( "Invalid number of reader ' %u ' (only %u available)" ,
readernum , len ( readers ))
sys . exit ()
@@ -427,7 +427,7 @@ forward, but see yourself…
try :
self . session = smartcard . Session ( self . reader )
except smartcard . Exceptions . CardConnectionException as e :
- logging . error ( "Error connecting to card: %s " , e . message )
+ logging . critical ( "Error connecting to card: %s " , str ( e ))
sys . exit ()
logging . info ( "Connected to card in ' %s '" , self . reader )
@@ -443,7 +443,7 @@ forward, but see yourself…
try :
self . session . close ()
except smartcard . Exceptions . CardConnectionException as e :
- logging . warning ( "Error disconnecting from card: %s " , e . message )
+ logging . warning ( "Error disconnecting from card: %s " , str ( e ))
def getATR ( self ):
# when powerDown has been called, fetching the ATR will throw an error.
@@ -457,7 +457,7 @@ forward, but see yourself…
self . session = smartcard . Session ( self . reader )
atr = self . session . getATR ()
except smartcard . Exceptions . CardConnectionException as e :
- logging . error ( "Error getting ATR: %s " , e . message )
+ logging . critical ( "Error getting ATR: %s " , str ( e ))
sys . exit ()
return "" . join ([ chr ( b ) for b in atr ])
@@ -473,7 +473,7 @@ forward, but see yourself…
try :
self . session = smartcard . Session ( self . reader )
except smartcard . Exceptions . CardConnectionException as e :
- logging . error ( "Error connecting to card: %s " , e . message )
+ logging . critical ( "Error connecting to card: %s " , str ( e ))
sys . exit ()
def powerDown ( self ):
@@ -482,7 +482,7 @@ forward, but see yourself…
try :
self . session . close ()
except smartcard . Exceptions . CardConnectionException as e :
- logging . error ( "Error disconnecting from card: %s " , str ( e ))
+ logging . critical ( "Error disconnecting from card: %s " , str ( e ))
sys . exit ()
def reset ( self ):
@@ -501,7 +501,7 @@ forward, but see yourself…
try :
rapdu , sw1 , sw2 = self . session . sendCommandAPDU ( apdu )
except smartcard . Exceptions . CardConnectionException as e :
- logging . error ( "Error transmitting APDU: %s " , str ( e ))
+ logging . critical ( "Error transmitting APDU: %s " , str ( e ))
sys . exit ()
# XXX this is a workaround, see on sourceforge bug #3083586
@@ -534,7 +534,7 @@ forward, but see yourself…
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.CardGenerator.html b/docs/virtualsmartcard/api/virtualsmartcard.CardGenerator.html
index 2b56800..bbb1325 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.CardGenerator.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.CardGenerator.html
@@ -4,7 +4,7 @@
-
CardGenerator Module — vsmartcard 2021-04-28 documentation
+
CardGenerator Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
CardGenerator Module
@@ -202,7 +202,7 @@ optionally for the path to a photo.
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.html b/docs/virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.html
index f73b02a..0722283 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.html
@@ -4,7 +4,7 @@
-
ConstantDefinitions Module — vsmartcard 2021-04-28 documentation
+
ConstantDefinitions Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
ConstantDefinitions Module
@@ -141,7 +141,7 @@
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.CryptoUtils.html b/docs/virtualsmartcard/api/virtualsmartcard.CryptoUtils.html
index bc467c5..39d6ddd 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.CryptoUtils.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.CryptoUtils.html
@@ -4,7 +4,7 @@
-
CryptoUtils Module — vsmartcard 2021-04-28 documentation
+
CryptoUtils Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
CryptoUtils Module
@@ -232,7 +232,7 @@ Only used by the “CC” algorithm
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.SEutils.html b/docs/virtualsmartcard/api/virtualsmartcard.SEutils.html
index b6f7509..555a54f 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.SEutils.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.SEutils.html
@@ -4,7 +4,7 @@
-
SEutils Module — vsmartcard 2021-04-28 documentation
+
SEutils Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
SEutils Module
@@ -579,7 +579,7 @@ contain a data to sign (tag 0x9A, 0xAC or 0xBC) and a digital signature
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.SWutils.html b/docs/virtualsmartcard/api/virtualsmartcard.SWutils.html
index 8ea2de8..fc9e042 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.SWutils.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.SWutils.html
@@ -4,7 +4,7 @@
-
SWutils Module — vsmartcard 2021-04-28 documentation
+
SWutils Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
SWutils Module
@@ -162,7 +162,7 @@ set self.__traceback__ to tb and return self.
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.html b/docs/virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.html
index a13242e..b2fd247 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.html
@@ -4,7 +4,7 @@
-
SmartcardFilesystem Module — vsmartcard 2021-04-28 documentation
+
SmartcardFilesystem Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
SmartcardFilesystem Module
@@ -138,7 +138,7 @@
-class virtualsmartcard.SmartcardFilesystem. DF ( parent , fid , filedescriptor = 56 , lifecycle = 5 , simpletlv_data = None , bertlv_data = None , dfname = None , data = '' )
+class virtualsmartcard.SmartcardFilesystem. DF ( parent , fid , filedescriptor = 56 , lifecycle = 5 , simpletlv_data = None , bertlv_data = None , dfname = None , data = b'' )
Bases: virtualsmartcard.SmartcardFilesystem.File
Class for a dedicated file
@@ -1189,7 +1189,7 @@ data as binary string.
-class virtualsmartcard.SmartcardFilesystem. Record ( identifier = None , data = '' )
+class virtualsmartcard.SmartcardFilesystem. Record ( identifier = None , data = b'' )
Bases: object
@@ -1455,7 +1455,7 @@ __getRecords).
-class virtualsmartcard.SmartcardFilesystem. TransparentStructureEF ( parent , fid , filedescriptor = 1 , lifecycle = 5 , simpletlv_data = None , bertlv_data = None , datacoding = 0 , shortfid = 0 , data = '' )
+class virtualsmartcard.SmartcardFilesystem. TransparentStructureEF ( parent , fid , filedescriptor = 1 , lifecycle = 5 , simpletlv_data = None , bertlv_data = None , datacoding = 0 , shortfid = 0 , data = b'' )
Bases: virtualsmartcard.SmartcardFilesystem.EF
Class for an elementary file with transparent structure.
@@ -1708,7 +1708,7 @@ DCB[“PROPRIETARY”] (logical xor)
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.SmartcardSAM.html b/docs/virtualsmartcard/api/virtualsmartcard.SmartcardSAM.html
index 9cb7ada..467c564 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.SmartcardSAM.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.SmartcardSAM.html
@@ -4,7 +4,7 @@
-
SmartcardSAM Module — vsmartcard 2021-04-28 documentation
+
SmartcardSAM Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
SmartcardSAM Module
@@ -430,7 +430,7 @@ string that is understood by CryptoUtils.py functions
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.TLVutils.html b/docs/virtualsmartcard/api/virtualsmartcard.TLVutils.html
index 2aaabc1..b1db19c 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.TLVutils.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.TLVutils.html
@@ -4,7 +4,7 @@
-
TLVutils Module — vsmartcard 2021-04-28 documentation
+
TLVutils Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
TLVutils Module
@@ -238,7 +238,7 @@ results will be returned.
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.VirtualSmartcard.html b/docs/virtualsmartcard/api/virtualsmartcard.VirtualSmartcard.html
index 662fe08..9e46f14 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.VirtualSmartcard.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.VirtualSmartcard.html
@@ -4,7 +4,7 @@
-
VirtualSmartcard Module — vsmartcard 2021-04-28 documentation
+
VirtualSmartcard Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
VirtualSmartcard Module
@@ -335,7 +335,7 @@ respsonse APDU back to the vpcd.
-virtualsmartcard.VirtualSmartcard. loadMitMFromPath ( path : str )
+virtualsmartcard.VirtualSmartcard. loadMitMFromPath ( path )
@@ -352,7 +352,7 @@ respsonse APDU back to the vpcd.
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.cards.HandlerTest.html b/docs/virtualsmartcard/api/virtualsmartcard.cards.HandlerTest.html
deleted file mode 100644
index 3b7253a..0000000
--- a/docs/virtualsmartcard/api/virtualsmartcard.cards.HandlerTest.html
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
-
-
-
-
HandlerTest Module — vsmartcard 2021-04-28 documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Site
-
-
-
-
- Page
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
HandlerTest Module
-
-
-
-
-
-
-class virtualsmartcard.cards.HandlerTest. HandlerTestOS
-Bases: virtualsmartcard.VirtualSmartcard.SmartcardOS
-This class implements the commands used for the PC/SC-lite smart card
-reader driver tester. See https://salsa.debian.org/rousseau/HandlerTest
-and handler_test(1).
-
-
-__output_from_le ( msg )
-
-
-
-
-execute ( msg )
-Returns response to the given APDU as string of characters
-
-Parameters
-msg – the APDU as string of characters
-
-
-
-
-
-
-getATR ( )
-Returns the ATR of the card as string of characters
-
-
-
-
-powerDown ( )
-Powers down the card
-
-
-
-
-powerUp ( )
-Powers up the card
-
-
-
-
-reset ( )
-Performs a warm reset of the card (no power down)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.cards.Relay.html b/docs/virtualsmartcard/api/virtualsmartcard.cards.Relay.html
deleted file mode 100644
index a471215..0000000
--- a/docs/virtualsmartcard/api/virtualsmartcard.cards.Relay.html
+++ /dev/null
@@ -1,204 +0,0 @@
-
-
-
-
-
-
-
Relay Module — vsmartcard 2021-04-28 documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Site
-
-
-
-
- Page
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Relay Module
-
-
-
-
-
-
-class virtualsmartcard.cards.Relay. RelayOS ( readernum , mitm=<virtualsmartcard.cards.RelayMiddleman.RelayMiddleman object> )
-Bases: virtualsmartcard.VirtualSmartcard.SmartcardOS
-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.
-
-
-cleanup ( )
-Close the connection to the physical card
-
-
-
-
-execute ( msg )
-Returns response to the given APDU as string of characters
-
-Parameters
-msg – the APDU as string of characters
-
-
-
-
-
-
-getATR ( )
-Returns the ATR of the card as string of characters
-
-
-
-
-powerDown ( )
-Powers down the card
-
-
-
-
-powerUp ( )
-Powers up the card
-
-
-
-
-reset ( )
-Performs a warm reset of the card (no power down)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.cards.RelayMiddleman.html b/docs/virtualsmartcard/api/virtualsmartcard.cards.RelayMiddleman.html
deleted file mode 100644
index 81a07f8..0000000
--- a/docs/virtualsmartcard/api/virtualsmartcard.cards.RelayMiddleman.html
+++ /dev/null
@@ -1,177 +0,0 @@
-
-
-
-
-
-
-
RelayMiddleman Module — vsmartcard 2021-04-28 documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Site
-
-
-
-
- Page
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
RelayMiddleman Module
-
-
-
-
-
-class virtualsmartcard.cards.RelayMiddleman. RelayMiddleman
-Bases: object
-The RelayMiddleman class serves as a base from which a user might derive
-their own relay middle man class. This base class implements the simplest
-Man-in-the-Middle: the NoOp.
-
-
-handleInPDU ( inPDU : bytes )
-This method is called on each PDU that is fed into the realy (vdpu -> vicc).
-It may be overwritten to modify the packages send from the terminal to the
-real smart card.
-
-
-
-
-handleOutPDU ( outPDU : bytes )
-This method is called on each PDU that is produced by the relay (vicc -> vdpu).
-It may be overwritten to modify the packages send from the real smart card to the
-terminal.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.cards.cryptoflex.html b/docs/virtualsmartcard/api/virtualsmartcard.cards.cryptoflex.html
index ec6eed5..1d72789 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.cards.cryptoflex.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.cards.cryptoflex.html
@@ -4,7 +4,7 @@
-
cryptoflex Module — vsmartcard 2021-04-28 documentation
+
cryptoflex Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
cryptoflex Module
@@ -1519,7 +1519,7 @@ contain a data to sign (tag 0x9A, 0xAC or 0xBC) and a digital signature
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.cards.ePass.html b/docs/virtualsmartcard/api/virtualsmartcard.cards.ePass.html
index 5f80281..e4beb4e 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.cards.ePass.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.cards.ePass.html
@@ -4,7 +4,7 @@
-
ePass Module — vsmartcard 2021-04-28 documentation
+
ePass Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
ePass Module
@@ -818,7 +818,7 @@ contain a data to sign (tag 0x9A, 0xAC or 0xBC) and a digital signature
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.cards.html b/docs/virtualsmartcard/api/virtualsmartcard.cards.html
index b28d09d..2e22559 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.cards.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.cards.html
@@ -4,7 +4,7 @@
-
cards Package — vsmartcard 2021-04-28 documentation
+
cards Package — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,15 +123,12 @@
-
+
cards Package
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.cards.nPA.html b/docs/virtualsmartcard/api/virtualsmartcard.cards.nPA.html
index 6de91df..cc640fa 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.cards.nPA.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.cards.nPA.html
@@ -4,7 +4,7 @@
-
nPA Module — vsmartcard 2021-04-28 documentation
+
nPA Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
nPA Module
@@ -141,7 +141,7 @@
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.html b/docs/virtualsmartcard/api/virtualsmartcard.html
index 5bfbcc4..ba88164 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.html
@@ -4,7 +4,7 @@
-
virtualsmartcard Package — vsmartcard 2021-04-28 documentation
+
virtualsmartcard Package — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,28 +123,18 @@
-
+
virtualsmartcard Package
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.tests.CardGenerator_test.html b/docs/virtualsmartcard/api/virtualsmartcard.tests.CardGenerator_test.html
deleted file mode 100644
index 897cbf9..0000000
--- a/docs/virtualsmartcard/api/virtualsmartcard.tests.CardGenerator_test.html
+++ /dev/null
@@ -1,2262 +0,0 @@
-
-
-
-
-
-
-
CardGenerator_test Module — vsmartcard 2021-04-28 documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Site
-
-
-
-
- Page
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
CardGenerator_test Module
-
-
-
-
-
-
-
-class virtualsmartcard.tests.CardGenerator_test. CryptoflexGeneratorTest ( methodName = 'runTest' )
-Bases: virtualsmartcard.tests.CardGenerator_test.ISO7816GeneratorTest
-
-
-_addExpectedFailure ( result , exc_info )
-
-
-
-
-_addSkip ( result , test_case , reason )
-
-
-
-
-_addUnexpectedSuccess ( result )
-
-
-
-
-_baseAssertEqual ( first , second , msg = None )
-The default assertEqual implementation, not type specific.
-
-
-
-
-_callCleanup ( function , / , * args , ** kwargs )
-
-
-
-
-_callSetUp ( )
-
-
-
-
-_callTearDown ( )
-
-
-
-
-_callTestMethod ( method )
-
-
-
-
-_classSetupFailed = False
-
-
-
-
-_class_cleanups = []
-
-
-
-
-_deprecate ( )
-
-
-
-
-_diffThreshold = 65536
-
-
-
-
-_feedErrorsToResult ( result , errors )
-
-
-
-
-_formatMessage ( msg , standardMsg )
-Honour the longMessage attribute when generating failure messages.
-If longMessage is False this means:
-* Use only an explicit message if it is provided
-* Otherwise use the standard message for the assert
-If longMessage is True:
-* Use the standard message
-* If an explicit message is provided, plus ‘ : ‘ and the explicit message
-
-
-
-
-_getAssertEqualityFunc ( first , second )
-Get a detailed comparison function for the types of the two args.
-Returns: A callable accepting (first, second, msg=None) that will
-raise a failure exception if first != second with a useful human
-readable error message for those types.
-
-
-
-
-_truncateMessage ( message , diff )
-
-
-
-
-classmethod addClassCleanup ( function , / , * args , ** kwargs )
-Same as addCleanup, except the cleanup items are called even if
-setUpClass fails (unlike tearDownClass).
-
-
-
-
-addCleanup ( function , / , * args , ** kwargs )
-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.
-Cleanup items are called even if setUp fails (unlike tearDown).
-
-
-
-
-addTypeEqualityFunc ( typeobj , function )
-Add a type specific assertEqual style function to compare a type.
-This method is for use by TestCase subclasses that need to register
-their own type equality functions to provide nicer error messages.
-
-Args:
-typeobj: The data type to call this function on when both values are of the same type in assertEqual().
-
-function: The callable taking two arguments and an optional msg= argument that raises self.failureException with a
-useful error message when the two arguments are not equal.
-
-
-
-
-
-
-
-
-assertAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is more than the given
-delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-If the two objects compare equal then they will automatically
-compare almost equal.
-
-
-
-
-assertAlmostEquals ( ** kwargs )
-
-
-
-
-assertCountEqual ( first , second , msg = None )
-Asserts that two iterables have the same elements, the same number of
-times, without regard to order.
-
-
-
-self.assertEqual(Counter(list(first)), Counter(list(second)))
-
-
-
-
-Example:
-[0, 1, 1] and [1, 0, 1] compare equal.
-[0, 0, 1] and [0, 1] compare unequal.
-
-
-
-
-
-
-
-
-assertDictContainsSubset ( subset , dictionary , msg = None )
-Checks whether dictionary is a superset of subset.
-
-
-
-
-assertDictEqual ( d1 , d2 , msg = None )
-
-
-
-
-assertEqual ( first , second , msg = None )
-Fail if the two objects are unequal as determined by the ‘==’
-operator.
-
-
-
-
-assertEquals ( ** kwargs )
-
-
-
-
-assertFalse ( expr , msg = None )
-Check that the expression is false.
-
-
-
-
-assertGreater ( a , b , msg = None )
-Just like self.assertTrue(a > b), but with a nicer default message.
-
-
-
-
-assertGreaterEqual ( a , b , msg = None )
-Just like self.assertTrue(a >= b), but with a nicer default message.
-
-
-
-
-assertIn ( member , container , msg = None )
-Just like self.assertTrue(a in b), but with a nicer default message.
-
-
-
-
-assertIs ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is b), but with a nicer default message.
-
-
-
-
-assertIsInstance ( obj , cls , msg = None )
-Same as self.assertTrue(isinstance(obj, cls)), with a nicer
-default message.
-
-
-
-
-assertIsNone ( obj , msg = None )
-Same as self.assertTrue(obj is None), with a nicer default message.
-
-
-
-
-assertIsNot ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is not b), but with a nicer default message.
-
-
-
-
-assertIsNotNone ( obj , msg = None )
-Included for symmetry with assertIsNone.
-
-
-
-
-assertLess ( a , b , msg = None )
-Just like self.assertTrue(a < b), but with a nicer default message.
-
-
-
-
-assertLessEqual ( a , b , msg = None )
-Just like self.assertTrue(a <= b), but with a nicer default message.
-
-
-
-
-assertListEqual ( list1 , list2 , msg = None )
-A list-specific equality assertion.
-
-Args: list1: The first list to compare.
-list2: The second list to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertLogs ( logger = None , level = None )
-Fail unless a log message of level level or higher is emitted
-on logger_name or its children. If omitted, level defaults to
-INFO and logger defaults to the root logger.
-This method must be used as a context manager, and will yield
-a recording object with two attributes: output and records .
-At the end of the context manager, the output attribute will
-be a list of the matching formatted log messages and the
-records attribute will be a list of the corresponding LogRecord
-objects.
-Example:
-with self . assertLogs ( 'foo' , level = 'INFO' ) as cm :
- logging . getLogger ( 'foo' ) . info ( 'first message' )
- logging . getLogger ( 'foo.bar' ) . error ( 'second message' )
-self . assertEqual ( cm . output , [ 'INFO:foo:first message' ,
- 'ERROR:foo.bar:second message' ])
-
-
-
-
-
-
-assertMultiLineEqual ( first , second , msg = None )
-Assert that two multi-line strings are equal.
-
-
-
-
-assertNotAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is less than the given delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-Objects that are equal automatically fail.
-
-
-
-
-assertNotAlmostEquals ( ** kwargs )
-
-
-
-
-assertNotEqual ( first , second , msg = None )
-Fail if the two objects are equal as determined by the ‘!=’
-operator.
-
-
-
-
-assertNotEquals ( ** kwargs )
-
-
-
-
-assertNotIn ( member , container , msg = None )
-Just like self.assertTrue(a not in b), but with a nicer default message.
-
-
-
-
-assertNotIsInstance ( obj , cls , msg = None )
-Included for symmetry with assertIsInstance.
-
-
-
-
-assertNotRegex ( text , unexpected_regex , msg = None )
-Fail the test if the text matches the regular expression.
-
-
-
-
-assertNotRegexpMatches ( ** kwargs )
-
-
-
-
-assertRaises ( expected_exception , * args , ** kwargs )
-Fail unless an exception of class expected_exception is raised
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of exception is
-raised, it will not be caught, and the test case will be
-deemed to have suffered an error, exactly as for an
-unexpected exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertRaises ( SomeException ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertRaises
-is used as a context object.
-The context manager keeps a reference to the exception as
-the ‘exception’ attribute. This allows you to inspect the
-exception after the assertion:
-with self . assertRaises ( SomeException ) as cm :
- do_something ()
-the_exception = cm . exception
-self . assertEqual ( the_exception . error_code , 3 )
-
-
-
-
-
-
-assertRaisesRegex ( expected_exception , expected_regex , * args , ** kwargs )
-Asserts that the message in a raised exception matches a regex.
-
-Args: expected_exception: Exception class expected to be raised.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertRaisesRegex is used as a context manager.
-
-
-
-
-
-
-
-assertRaisesRegexp ( ** kwargs )
-
-
-
-
-assertRegex ( text , expected_regex , msg = None )
-Fail the test unless the text matches the regular expression.
-
-
-
-
-assertRegexpMatches ( ** kwargs )
-
-
-
-
-assertSequenceEqual ( seq1 , seq2 , msg = None , seq_type = None )
-An equality assertion for ordered sequences (like lists and tuples).
-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.
-
-Args: seq1: The first sequence to compare.
-seq2: The second sequence to compare.
-seq_type: The expected datatype of the sequences, or None if no
-
-datatype should be enforced.
-
-
-msg: Optional message to use on failure instead of a list of differences.
-
-
-
-
-
-
-
-
-assertSetEqual ( set1 , set2 , msg = None )
-A set-specific equality assertion.
-
-Args: set1: The first set to compare.
-set2: The second set to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-assertSetEqual uses ducktyping to support different types of sets, and
-is optimized for sets specifically (parameters must support a
-difference method).
-
-
-
-
-assertTrue ( expr , msg = None )
-Check that the expression is true.
-
-
-
-
-assertTupleEqual ( tuple1 , tuple2 , msg = None )
-A tuple-specific equality assertion.
-
-Args: tuple1: The first tuple to compare.
-tuple2: The second tuple to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertWarns ( expected_warning , * args , ** kwargs )
-Fail unless a warning of class warnClass is triggered
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of warning is
-triggered, it will not be handled: depending on the other
-warning filtering rules in effect, it might be silenced, printed
-out, or raised as an exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertWarns ( SomeWarning ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertWarns
-is used as a context object.
-The context manager keeps a reference to the first matching
-warning as the ‘warning’ attribute; similarly, the ‘filename’
-and ‘lineno’ attributes give you information about the line
-of Python code from which the warning was triggered.
-This allows you to inspect the warning after the assertion:
-with self . assertWarns ( SomeWarning ) as cm :
- do_something ()
-the_warning = cm . warning
-self . assertEqual ( the_warning . some_attribute , 147 )
-
-
-
-
-
-
-assertWarnsRegex ( expected_warning , expected_regex , * args , ** kwargs )
-Asserts that the message in a triggered warning matches a regexp.
-Basic functioning is similar to assertWarns() with the addition
-that only warnings whose messages also match the regular expression
-are considered successful matches.
-
-Args: expected_warning: Warning class expected to be triggered.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertWarnsRegex is used as a context manager.
-
-
-
-
-
-
-
-assert_ ( ** kwargs )
-
-
-
-
-card_type = 'cryptoflex'
-
-
-
-
-countTestCases ( )
-
-
-
-
-debug ( )
-Run the test without collecting errors in a TestResult
-
-
-
-
-defaultTestResult ( )
-
-
-
-
-classmethod doClassCleanups ( )
-Execute all class cleanup functions. Normally called for you after
-tearDownClass.
-
-
-
-
-doCleanups ( )
-Execute all cleanup functions. Normally called for you after
-tearDown.
-
-
-
-
-fail ( msg = None )
-Fail immediately, with the given message.
-
-
-
-
-failIf ( ** kwargs )
-
-
-
-
-failIfAlmostEqual ( ** kwargs )
-
-
-
-
-failIfEqual ( ** kwargs )
-
-
-
-
-failUnless ( ** kwargs )
-
-
-
-
-failUnlessAlmostEqual ( ** kwargs )
-
-
-
-
-failUnlessEqual ( ** kwargs )
-
-
-
-
-failUnlessRaises ( ** kwargs )
-
-
-
-
-failureException
-alias of AssertionError
-
-
-
-
-id ( )
-
-
-
-
-longMessage = True
-
-
-
-
-maxDiff = 640
-
-
-
-
-run ( result = None )
-
-
-
-
-setUp ( )
-Hook method for setting up the test fixture before exercising it.
-
-
-
-
-classmethod setUpClass ( )
-Hook method for setting up class fixture before running tests in the class.
-
-
-
-
-shortDescription ( )
-Returns a one-line description of the test, or None if no
-description has been provided.
-The default implementation of this method returns the first line of
-the specified test method’s docstring.
-
-
-
-
-skipTest ( reason )
-Skip this test.
-
-
-
-
-subTest ( msg=<object object> , **params )
-Return a context manager that will return the enclosed block
-of code in a subtest identified by the optional message and
-keyword parameters. A failure in the subtest marks the test
-case as failed but resumes execution at the end of the enclosed
-block, allowing further test code to be executed.
-
-
-
-
-tearDown ( )
-Hook method for deconstructing the test fixture after testing it.
-
-
-
-
-classmethod tearDownClass ( )
-Hook method for deconstructing the class fixture after running all tests in the class.
-
-
-
-
-test_card_creation ( )
-
-
-
-
-test_get_and_set_card ( )
-
-
-
-
-
-
-class virtualsmartcard.tests.CardGenerator_test. ISO7816GeneratorTest ( methodName = 'runTest' )
-Bases: unittest.case.TestCase
-
-
-_addExpectedFailure ( result , exc_info )
-
-
-
-
-_addSkip ( result , test_case , reason )
-
-
-
-
-_addUnexpectedSuccess ( result )
-
-
-
-
-_baseAssertEqual ( first , second , msg = None )
-The default assertEqual implementation, not type specific.
-
-
-
-
-_callCleanup ( function , / , * args , ** kwargs )
-
-
-
-
-_callSetUp ( )
-
-
-
-
-_callTearDown ( )
-
-
-
-
-_callTestMethod ( method )
-
-
-
-
-_classSetupFailed = False
-
-
-
-
-_class_cleanups = []
-
-
-
-
-_deprecate ( )
-
-
-
-
-_diffThreshold = 65536
-
-
-
-
-_feedErrorsToResult ( result , errors )
-
-
-
-
-_formatMessage ( msg , standardMsg )
-Honour the longMessage attribute when generating failure messages.
-If longMessage is False this means:
-* Use only an explicit message if it is provided
-* Otherwise use the standard message for the assert
-If longMessage is True:
-* Use the standard message
-* If an explicit message is provided, plus ‘ : ‘ and the explicit message
-
-
-
-
-_getAssertEqualityFunc ( first , second )
-Get a detailed comparison function for the types of the two args.
-Returns: A callable accepting (first, second, msg=None) that will
-raise a failure exception if first != second with a useful human
-readable error message for those types.
-
-
-
-
-_truncateMessage ( message , diff )
-
-
-
-
-classmethod addClassCleanup ( function , / , * args , ** kwargs )
-Same as addCleanup, except the cleanup items are called even if
-setUpClass fails (unlike tearDownClass).
-
-
-
-
-addCleanup ( function , / , * args , ** kwargs )
-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.
-Cleanup items are called even if setUp fails (unlike tearDown).
-
-
-
-
-addTypeEqualityFunc ( typeobj , function )
-Add a type specific assertEqual style function to compare a type.
-This method is for use by TestCase subclasses that need to register
-their own type equality functions to provide nicer error messages.
-
-Args:
-typeobj: The data type to call this function on when both values are of the same type in assertEqual().
-
-function: The callable taking two arguments and an optional msg= argument that raises self.failureException with a
-useful error message when the two arguments are not equal.
-
-
-
-
-
-
-
-
-assertAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is more than the given
-delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-If the two objects compare equal then they will automatically
-compare almost equal.
-
-
-
-
-assertAlmostEquals ( ** kwargs )
-
-
-
-
-assertCountEqual ( first , second , msg = None )
-Asserts that two iterables have the same elements, the same number of
-times, without regard to order.
-
-
-
-self.assertEqual(Counter(list(first)), Counter(list(second)))
-
-
-
-
-Example:
-[0, 1, 1] and [1, 0, 1] compare equal.
-[0, 0, 1] and [0, 1] compare unequal.
-
-
-
-
-
-
-
-
-assertDictContainsSubset ( subset , dictionary , msg = None )
-Checks whether dictionary is a superset of subset.
-
-
-
-
-assertDictEqual ( d1 , d2 , msg = None )
-
-
-
-
-assertEqual ( first , second , msg = None )
-Fail if the two objects are unequal as determined by the ‘==’
-operator.
-
-
-
-
-assertEquals ( ** kwargs )
-
-
-
-
-assertFalse ( expr , msg = None )
-Check that the expression is false.
-
-
-
-
-assertGreater ( a , b , msg = None )
-Just like self.assertTrue(a > b), but with a nicer default message.
-
-
-
-
-assertGreaterEqual ( a , b , msg = None )
-Just like self.assertTrue(a >= b), but with a nicer default message.
-
-
-
-
-assertIn ( member , container , msg = None )
-Just like self.assertTrue(a in b), but with a nicer default message.
-
-
-
-
-assertIs ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is b), but with a nicer default message.
-
-
-
-
-assertIsInstance ( obj , cls , msg = None )
-Same as self.assertTrue(isinstance(obj, cls)), with a nicer
-default message.
-
-
-
-
-assertIsNone ( obj , msg = None )
-Same as self.assertTrue(obj is None), with a nicer default message.
-
-
-
-
-assertIsNot ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is not b), but with a nicer default message.
-
-
-
-
-assertIsNotNone ( obj , msg = None )
-Included for symmetry with assertIsNone.
-
-
-
-
-assertLess ( a , b , msg = None )
-Just like self.assertTrue(a < b), but with a nicer default message.
-
-
-
-
-assertLessEqual ( a , b , msg = None )
-Just like self.assertTrue(a <= b), but with a nicer default message.
-
-
-
-
-assertListEqual ( list1 , list2 , msg = None )
-A list-specific equality assertion.
-
-Args: list1: The first list to compare.
-list2: The second list to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertLogs ( logger = None , level = None )
-Fail unless a log message of level level or higher is emitted
-on logger_name or its children. If omitted, level defaults to
-INFO and logger defaults to the root logger.
-This method must be used as a context manager, and will yield
-a recording object with two attributes: output and records .
-At the end of the context manager, the output attribute will
-be a list of the matching formatted log messages and the
-records attribute will be a list of the corresponding LogRecord
-objects.
-Example:
-with self . assertLogs ( 'foo' , level = 'INFO' ) as cm :
- logging . getLogger ( 'foo' ) . info ( 'first message' )
- logging . getLogger ( 'foo.bar' ) . error ( 'second message' )
-self . assertEqual ( cm . output , [ 'INFO:foo:first message' ,
- 'ERROR:foo.bar:second message' ])
-
-
-
-
-
-
-assertMultiLineEqual ( first , second , msg = None )
-Assert that two multi-line strings are equal.
-
-
-
-
-assertNotAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is less than the given delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-Objects that are equal automatically fail.
-
-
-
-
-assertNotAlmostEquals ( ** kwargs )
-
-
-
-
-assertNotEqual ( first , second , msg = None )
-Fail if the two objects are equal as determined by the ‘!=’
-operator.
-
-
-
-
-assertNotEquals ( ** kwargs )
-
-
-
-
-assertNotIn ( member , container , msg = None )
-Just like self.assertTrue(a not in b), but with a nicer default message.
-
-
-
-
-assertNotIsInstance ( obj , cls , msg = None )
-Included for symmetry with assertIsInstance.
-
-
-
-
-assertNotRegex ( text , unexpected_regex , msg = None )
-Fail the test if the text matches the regular expression.
-
-
-
-
-assertNotRegexpMatches ( ** kwargs )
-
-
-
-
-assertRaises ( expected_exception , * args , ** kwargs )
-Fail unless an exception of class expected_exception is raised
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of exception is
-raised, it will not be caught, and the test case will be
-deemed to have suffered an error, exactly as for an
-unexpected exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertRaises ( SomeException ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertRaises
-is used as a context object.
-The context manager keeps a reference to the exception as
-the ‘exception’ attribute. This allows you to inspect the
-exception after the assertion:
-with self . assertRaises ( SomeException ) as cm :
- do_something ()
-the_exception = cm . exception
-self . assertEqual ( the_exception . error_code , 3 )
-
-
-
-
-
-
-assertRaisesRegex ( expected_exception , expected_regex , * args , ** kwargs )
-Asserts that the message in a raised exception matches a regex.
-
-Args: expected_exception: Exception class expected to be raised.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertRaisesRegex is used as a context manager.
-
-
-
-
-
-
-
-assertRaisesRegexp ( ** kwargs )
-
-
-
-
-assertRegex ( text , expected_regex , msg = None )
-Fail the test unless the text matches the regular expression.
-
-
-
-
-assertRegexpMatches ( ** kwargs )
-
-
-
-
-assertSequenceEqual ( seq1 , seq2 , msg = None , seq_type = None )
-An equality assertion for ordered sequences (like lists and tuples).
-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.
-
-Args: seq1: The first sequence to compare.
-seq2: The second sequence to compare.
-seq_type: The expected datatype of the sequences, or None if no
-
-datatype should be enforced.
-
-
-msg: Optional message to use on failure instead of a list of differences.
-
-
-
-
-
-
-
-
-assertSetEqual ( set1 , set2 , msg = None )
-A set-specific equality assertion.
-
-Args: set1: The first set to compare.
-set2: The second set to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-assertSetEqual uses ducktyping to support different types of sets, and
-is optimized for sets specifically (parameters must support a
-difference method).
-
-
-
-
-assertTrue ( expr , msg = None )
-Check that the expression is true.
-
-
-
-
-assertTupleEqual ( tuple1 , tuple2 , msg = None )
-A tuple-specific equality assertion.
-
-Args: tuple1: The first tuple to compare.
-tuple2: The second tuple to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertWarns ( expected_warning , * args , ** kwargs )
-Fail unless a warning of class warnClass is triggered
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of warning is
-triggered, it will not be handled: depending on the other
-warning filtering rules in effect, it might be silenced, printed
-out, or raised as an exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertWarns ( SomeWarning ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertWarns
-is used as a context object.
-The context manager keeps a reference to the first matching
-warning as the ‘warning’ attribute; similarly, the ‘filename’
-and ‘lineno’ attributes give you information about the line
-of Python code from which the warning was triggered.
-This allows you to inspect the warning after the assertion:
-with self . assertWarns ( SomeWarning ) as cm :
- do_something ()
-the_warning = cm . warning
-self . assertEqual ( the_warning . some_attribute , 147 )
-
-
-
-
-
-
-assertWarnsRegex ( expected_warning , expected_regex , * args , ** kwargs )
-Asserts that the message in a triggered warning matches a regexp.
-Basic functioning is similar to assertWarns() with the addition
-that only warnings whose messages also match the regular expression
-are considered successful matches.
-
-Args: expected_warning: Warning class expected to be triggered.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertWarnsRegex is used as a context manager.
-
-
-
-
-
-
-
-assert_ ( ** kwargs )
-
-
-
-
-card_type = 'iso7816'
-
-
-
-
-countTestCases ( )
-
-
-
-
-debug ( )
-Run the test without collecting errors in a TestResult
-
-
-
-
-defaultTestResult ( )
-
-
-
-
-classmethod doClassCleanups ( )
-Execute all class cleanup functions. Normally called for you after
-tearDownClass.
-
-
-
-
-doCleanups ( )
-Execute all cleanup functions. Normally called for you after
-tearDown.
-
-
-
-
-fail ( msg = None )
-Fail immediately, with the given message.
-
-
-
-
-failIf ( ** kwargs )
-
-
-
-
-failIfAlmostEqual ( ** kwargs )
-
-
-
-
-failIfEqual ( ** kwargs )
-
-
-
-
-failUnless ( ** kwargs )
-
-
-
-
-failUnlessAlmostEqual ( ** kwargs )
-
-
-
-
-failUnlessEqual ( ** kwargs )
-
-
-
-
-failUnlessRaises ( ** kwargs )
-
-
-
-
-failureException
-alias of AssertionError
-
-
-
-
-id ( )
-
-
-
-
-longMessage = True
-
-
-
-
-maxDiff = 640
-
-
-
-
-run ( result = None )
-
-
-
-
-setUp ( )
-Hook method for setting up the test fixture before exercising it.
-
-
-
-
-classmethod setUpClass ( )
-Hook method for setting up class fixture before running tests in the class.
-
-
-
-
-shortDescription ( )
-Returns a one-line description of the test, or None if no
-description has been provided.
-The default implementation of this method returns the first line of
-the specified test method’s docstring.
-
-
-
-
-skipTest ( reason )
-Skip this test.
-
-
-
-
-subTest ( msg=<object object> , **params )
-Return a context manager that will return the enclosed block
-of code in a subtest identified by the optional message and
-keyword parameters. A failure in the subtest marks the test
-case as failed but resumes execution at the end of the enclosed
-block, allowing further test code to be executed.
-
-
-
-
-tearDown ( )
-Hook method for deconstructing the test fixture after testing it.
-
-
-
-
-classmethod tearDownClass ( )
-Hook method for deconstructing the class fixture after running all tests in the class.
-
-
-
-
-test_card_creation ( )
-
-
-
-
-test_get_and_set_card ( )
-
-
-
-
-
-
-class virtualsmartcard.tests.CardGenerator_test. TestNPACardGenerator ( methodName = 'runTest' )
-Bases: virtualsmartcard.tests.CardGenerator_test.ISO7816GeneratorTest
-
-
-_addExpectedFailure ( result , exc_info )
-
-
-
-
-_addSkip ( result , test_case , reason )
-
-
-
-
-_addUnexpectedSuccess ( result )
-
-
-
-
-_baseAssertEqual ( first , second , msg = None )
-The default assertEqual implementation, not type specific.
-
-
-
-
-_callCleanup ( function , / , * args , ** kwargs )
-
-
-
-
-_callSetUp ( )
-
-
-
-
-_callTearDown ( )
-
-
-
-
-_callTestMethod ( method )
-
-
-
-
-_classSetupFailed = False
-
-
-
-
-_class_cleanups = []
-
-
-
-
-_deprecate ( )
-
-
-
-
-_diffThreshold = 65536
-
-
-
-
-_feedErrorsToResult ( result , errors )
-
-
-
-
-_formatMessage ( msg , standardMsg )
-Honour the longMessage attribute when generating failure messages.
-If longMessage is False this means:
-* Use only an explicit message if it is provided
-* Otherwise use the standard message for the assert
-If longMessage is True:
-* Use the standard message
-* If an explicit message is provided, plus ‘ : ‘ and the explicit message
-
-
-
-
-_getAssertEqualityFunc ( first , second )
-Get a detailed comparison function for the types of the two args.
-Returns: A callable accepting (first, second, msg=None) that will
-raise a failure exception if first != second with a useful human
-readable error message for those types.
-
-
-
-
-_truncateMessage ( message , diff )
-
-
-
-
-classmethod addClassCleanup ( function , / , * args , ** kwargs )
-Same as addCleanup, except the cleanup items are called even if
-setUpClass fails (unlike tearDownClass).
-
-
-
-
-addCleanup ( function , / , * args , ** kwargs )
-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.
-Cleanup items are called even if setUp fails (unlike tearDown).
-
-
-
-
-addTypeEqualityFunc ( typeobj , function )
-Add a type specific assertEqual style function to compare a type.
-This method is for use by TestCase subclasses that need to register
-their own type equality functions to provide nicer error messages.
-
-Args:
-typeobj: The data type to call this function on when both values are of the same type in assertEqual().
-
-function: The callable taking two arguments and an optional msg= argument that raises self.failureException with a
-useful error message when the two arguments are not equal.
-
-
-
-
-
-
-
-
-assertAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is more than the given
-delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-If the two objects compare equal then they will automatically
-compare almost equal.
-
-
-
-
-assertAlmostEquals ( ** kwargs )
-
-
-
-
-assertCountEqual ( first , second , msg = None )
-Asserts that two iterables have the same elements, the same number of
-times, without regard to order.
-
-
-
-self.assertEqual(Counter(list(first)), Counter(list(second)))
-
-
-
-
-Example:
-[0, 1, 1] and [1, 0, 1] compare equal.
-[0, 0, 1] and [0, 1] compare unequal.
-
-
-
-
-
-
-
-
-assertDictContainsSubset ( subset , dictionary , msg = None )
-Checks whether dictionary is a superset of subset.
-
-
-
-
-assertDictEqual ( d1 , d2 , msg = None )
-
-
-
-
-assertEqual ( first , second , msg = None )
-Fail if the two objects are unequal as determined by the ‘==’
-operator.
-
-
-
-
-assertEquals ( ** kwargs )
-
-
-
-
-assertFalse ( expr , msg = None )
-Check that the expression is false.
-
-
-
-
-assertGreater ( a , b , msg = None )
-Just like self.assertTrue(a > b), but with a nicer default message.
-
-
-
-
-assertGreaterEqual ( a , b , msg = None )
-Just like self.assertTrue(a >= b), but with a nicer default message.
-
-
-
-
-assertIn ( member , container , msg = None )
-Just like self.assertTrue(a in b), but with a nicer default message.
-
-
-
-
-assertIs ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is b), but with a nicer default message.
-
-
-
-
-assertIsInstance ( obj , cls , msg = None )
-Same as self.assertTrue(isinstance(obj, cls)), with a nicer
-default message.
-
-
-
-
-assertIsNone ( obj , msg = None )
-Same as self.assertTrue(obj is None), with a nicer default message.
-
-
-
-
-assertIsNot ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is not b), but with a nicer default message.
-
-
-
-
-assertIsNotNone ( obj , msg = None )
-Included for symmetry with assertIsNone.
-
-
-
-
-assertLess ( a , b , msg = None )
-Just like self.assertTrue(a < b), but with a nicer default message.
-
-
-
-
-assertLessEqual ( a , b , msg = None )
-Just like self.assertTrue(a <= b), but with a nicer default message.
-
-
-
-
-assertListEqual ( list1 , list2 , msg = None )
-A list-specific equality assertion.
-
-Args: list1: The first list to compare.
-list2: The second list to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertLogs ( logger = None , level = None )
-Fail unless a log message of level level or higher is emitted
-on logger_name or its children. If omitted, level defaults to
-INFO and logger defaults to the root logger.
-This method must be used as a context manager, and will yield
-a recording object with two attributes: output and records .
-At the end of the context manager, the output attribute will
-be a list of the matching formatted log messages and the
-records attribute will be a list of the corresponding LogRecord
-objects.
-Example:
-with self . assertLogs ( 'foo' , level = 'INFO' ) as cm :
- logging . getLogger ( 'foo' ) . info ( 'first message' )
- logging . getLogger ( 'foo.bar' ) . error ( 'second message' )
-self . assertEqual ( cm . output , [ 'INFO:foo:first message' ,
- 'ERROR:foo.bar:second message' ])
-
-
-
-
-
-
-assertMultiLineEqual ( first , second , msg = None )
-Assert that two multi-line strings are equal.
-
-
-
-
-assertNotAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is less than the given delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-Objects that are equal automatically fail.
-
-
-
-
-assertNotAlmostEquals ( ** kwargs )
-
-
-
-
-assertNotEqual ( first , second , msg = None )
-Fail if the two objects are equal as determined by the ‘!=’
-operator.
-
-
-
-
-assertNotEquals ( ** kwargs )
-
-
-
-
-assertNotIn ( member , container , msg = None )
-Just like self.assertTrue(a not in b), but with a nicer default message.
-
-
-
-
-assertNotIsInstance ( obj , cls , msg = None )
-Included for symmetry with assertIsInstance.
-
-
-
-
-assertNotRegex ( text , unexpected_regex , msg = None )
-Fail the test if the text matches the regular expression.
-
-
-
-
-assertNotRegexpMatches ( ** kwargs )
-
-
-
-
-assertRaises ( expected_exception , * args , ** kwargs )
-Fail unless an exception of class expected_exception is raised
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of exception is
-raised, it will not be caught, and the test case will be
-deemed to have suffered an error, exactly as for an
-unexpected exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertRaises ( SomeException ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertRaises
-is used as a context object.
-The context manager keeps a reference to the exception as
-the ‘exception’ attribute. This allows you to inspect the
-exception after the assertion:
-with self . assertRaises ( SomeException ) as cm :
- do_something ()
-the_exception = cm . exception
-self . assertEqual ( the_exception . error_code , 3 )
-
-
-
-
-
-
-assertRaisesRegex ( expected_exception , expected_regex , * args , ** kwargs )
-Asserts that the message in a raised exception matches a regex.
-
-Args: expected_exception: Exception class expected to be raised.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertRaisesRegex is used as a context manager.
-
-
-
-
-
-
-
-assertRaisesRegexp ( ** kwargs )
-
-
-
-
-assertRegex ( text , expected_regex , msg = None )
-Fail the test unless the text matches the regular expression.
-
-
-
-
-assertRegexpMatches ( ** kwargs )
-
-
-
-
-assertSequenceEqual ( seq1 , seq2 , msg = None , seq_type = None )
-An equality assertion for ordered sequences (like lists and tuples).
-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.
-
-Args: seq1: The first sequence to compare.
-seq2: The second sequence to compare.
-seq_type: The expected datatype of the sequences, or None if no
-
-datatype should be enforced.
-
-
-msg: Optional message to use on failure instead of a list of differences.
-
-
-
-
-
-
-
-
-assertSetEqual ( set1 , set2 , msg = None )
-A set-specific equality assertion.
-
-Args: set1: The first set to compare.
-set2: The second set to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-assertSetEqual uses ducktyping to support different types of sets, and
-is optimized for sets specifically (parameters must support a
-difference method).
-
-
-
-
-assertTrue ( expr , msg = None )
-Check that the expression is true.
-
-
-
-
-assertTupleEqual ( tuple1 , tuple2 , msg = None )
-A tuple-specific equality assertion.
-
-Args: tuple1: The first tuple to compare.
-tuple2: The second tuple to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertWarns ( expected_warning , * args , ** kwargs )
-Fail unless a warning of class warnClass is triggered
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of warning is
-triggered, it will not be handled: depending on the other
-warning filtering rules in effect, it might be silenced, printed
-out, or raised as an exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertWarns ( SomeWarning ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertWarns
-is used as a context object.
-The context manager keeps a reference to the first matching
-warning as the ‘warning’ attribute; similarly, the ‘filename’
-and ‘lineno’ attributes give you information about the line
-of Python code from which the warning was triggered.
-This allows you to inspect the warning after the assertion:
-with self . assertWarns ( SomeWarning ) as cm :
- do_something ()
-the_warning = cm . warning
-self . assertEqual ( the_warning . some_attribute , 147 )
-
-
-
-
-
-
-assertWarnsRegex ( expected_warning , expected_regex , * args , ** kwargs )
-Asserts that the message in a triggered warning matches a regexp.
-Basic functioning is similar to assertWarns() with the addition
-that only warnings whose messages also match the regular expression
-are considered successful matches.
-
-Args: expected_warning: Warning class expected to be triggered.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertWarnsRegex is used as a context manager.
-
-
-
-
-
-
-
-assert_ ( ** kwargs )
-
-
-
-
-card_type = 'nPA'
-
-
-
-
-countTestCases ( )
-
-
-
-
-debug ( )
-Run the test without collecting errors in a TestResult
-
-
-
-
-defaultTestResult ( )
-
-
-
-
-classmethod doClassCleanups ( )
-Execute all class cleanup functions. Normally called for you after
-tearDownClass.
-
-
-
-
-doCleanups ( )
-Execute all cleanup functions. Normally called for you after
-tearDown.
-
-
-
-
-fail ( msg = None )
-Fail immediately, with the given message.
-
-
-
-
-failIf ( ** kwargs )
-
-
-
-
-failIfAlmostEqual ( ** kwargs )
-
-
-
-
-failIfEqual ( ** kwargs )
-
-
-
-
-failUnless ( ** kwargs )
-
-
-
-
-failUnlessAlmostEqual ( ** kwargs )
-
-
-
-
-failUnlessEqual ( ** kwargs )
-
-
-
-
-failUnlessRaises ( ** kwargs )
-
-
-
-
-failureException
-alias of AssertionError
-
-
-
-
-id ( )
-
-
-
-
-longMessage = True
-
-
-
-
-maxDiff = 640
-
-
-
-
-run ( result = None )
-
-
-
-
-setUp ( )
-Hook method for setting up the test fixture before exercising it.
-
-
-
-
-classmethod setUpClass ( )
-Hook method for setting up class fixture before running tests in the class.
-
-
-
-
-shortDescription ( )
-Returns a one-line description of the test, or None if no
-description has been provided.
-The default implementation of this method returns the first line of
-the specified test method’s docstring.
-
-
-
-
-skipTest ( reason )
-Skip this test.
-
-
-
-
-subTest ( msg=<object object> , **params )
-Return a context manager that will return the enclosed block
-of code in a subtest identified by the optional message and
-keyword parameters. A failure in the subtest marks the test
-case as failed but resumes execution at the end of the enclosed
-block, allowing further test code to be executed.
-
-
-
-
-tearDown ( )
-Hook method for deconstructing the test fixture after testing it.
-
-
-
-
-classmethod tearDownClass ( )
-Hook method for deconstructing the class fixture after running all tests in the class.
-
-
-
-
-test_card_creation ( )
-
-
-
-
-test_get_and_set_card ( )
-
-
-
-
-test_readDatagroups ( )
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.tests.CryptoUtils_test.html b/docs/virtualsmartcard/api/virtualsmartcard.tests.CryptoUtils_test.html
deleted file mode 100644
index 8d55bfe..0000000
--- a/docs/virtualsmartcard/api/virtualsmartcard.tests.CryptoUtils_test.html
+++ /dev/null
@@ -1,843 +0,0 @@
-
-
-
-
-
-
-
CryptoUtils_test Module — vsmartcard 2021-04-28 documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Site
-
-
-
-
- Page
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
CryptoUtils_test Module
-
-
-
-
-
-class virtualsmartcard.tests.CryptoUtils_test. TestCryptoUtils ( methodName = 'runTest' )
-Bases: unittest.case.TestCase
-
-
-_addExpectedFailure ( result , exc_info )
-
-
-
-
-_addSkip ( result , test_case , reason )
-
-
-
-
-_addUnexpectedSuccess ( result )
-
-
-
-
-_baseAssertEqual ( first , second , msg = None )
-The default assertEqual implementation, not type specific.
-
-
-
-
-_callCleanup ( function , / , * args , ** kwargs )
-
-
-
-
-_callSetUp ( )
-
-
-
-
-_callTearDown ( )
-
-
-
-
-_callTestMethod ( method )
-
-
-
-
-_classSetupFailed = False
-
-
-
-
-_class_cleanups = []
-
-
-
-
-_deprecate ( )
-
-
-
-
-_diffThreshold = 65536
-
-
-
-
-_feedErrorsToResult ( result , errors )
-
-
-
-
-_formatMessage ( msg , standardMsg )
-Honour the longMessage attribute when generating failure messages.
-If longMessage is False this means:
-* Use only an explicit message if it is provided
-* Otherwise use the standard message for the assert
-If longMessage is True:
-* Use the standard message
-* If an explicit message is provided, plus ‘ : ‘ and the explicit message
-
-
-
-
-_getAssertEqualityFunc ( first , second )
-Get a detailed comparison function for the types of the two args.
-Returns: A callable accepting (first, second, msg=None) that will
-raise a failure exception if first != second with a useful human
-readable error message for those types.
-
-
-
-
-_truncateMessage ( message , diff )
-
-
-
-
-classmethod addClassCleanup ( function , / , * args , ** kwargs )
-Same as addCleanup, except the cleanup items are called even if
-setUpClass fails (unlike tearDownClass).
-
-
-
-
-addCleanup ( function , / , * args , ** kwargs )
-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.
-Cleanup items are called even if setUp fails (unlike tearDown).
-
-
-
-
-addTypeEqualityFunc ( typeobj , function )
-Add a type specific assertEqual style function to compare a type.
-This method is for use by TestCase subclasses that need to register
-their own type equality functions to provide nicer error messages.
-
-Args:
-typeobj: The data type to call this function on when both values are of the same type in assertEqual().
-
-function: The callable taking two arguments and an optional msg= argument that raises self.failureException with a
-useful error message when the two arguments are not equal.
-
-
-
-
-
-
-
-
-assertAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is more than the given
-delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-If the two objects compare equal then they will automatically
-compare almost equal.
-
-
-
-
-assertAlmostEquals ( ** kwargs )
-
-
-
-
-assertCountEqual ( first , second , msg = None )
-Asserts that two iterables have the same elements, the same number of
-times, without regard to order.
-
-
-
-self.assertEqual(Counter(list(first)), Counter(list(second)))
-
-
-
-
-Example:
-[0, 1, 1] and [1, 0, 1] compare equal.
-[0, 0, 1] and [0, 1] compare unequal.
-
-
-
-
-
-
-
-
-assertDictContainsSubset ( subset , dictionary , msg = None )
-Checks whether dictionary is a superset of subset.
-
-
-
-
-assertDictEqual ( d1 , d2 , msg = None )
-
-
-
-
-assertEqual ( first , second , msg = None )
-Fail if the two objects are unequal as determined by the ‘==’
-operator.
-
-
-
-
-assertEquals ( ** kwargs )
-
-
-
-
-assertFalse ( expr , msg = None )
-Check that the expression is false.
-
-
-
-
-assertGreater ( a , b , msg = None )
-Just like self.assertTrue(a > b), but with a nicer default message.
-
-
-
-
-assertGreaterEqual ( a , b , msg = None )
-Just like self.assertTrue(a >= b), but with a nicer default message.
-
-
-
-
-assertIn ( member , container , msg = None )
-Just like self.assertTrue(a in b), but with a nicer default message.
-
-
-
-
-assertIs ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is b), but with a nicer default message.
-
-
-
-
-assertIsInstance ( obj , cls , msg = None )
-Same as self.assertTrue(isinstance(obj, cls)), with a nicer
-default message.
-
-
-
-
-assertIsNone ( obj , msg = None )
-Same as self.assertTrue(obj is None), with a nicer default message.
-
-
-
-
-assertIsNot ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is not b), but with a nicer default message.
-
-
-
-
-assertIsNotNone ( obj , msg = None )
-Included for symmetry with assertIsNone.
-
-
-
-
-assertLess ( a , b , msg = None )
-Just like self.assertTrue(a < b), but with a nicer default message.
-
-
-
-
-assertLessEqual ( a , b , msg = None )
-Just like self.assertTrue(a <= b), but with a nicer default message.
-
-
-
-
-assertListEqual ( list1 , list2 , msg = None )
-A list-specific equality assertion.
-
-Args: list1: The first list to compare.
-list2: The second list to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertLogs ( logger = None , level = None )
-Fail unless a log message of level level or higher is emitted
-on logger_name or its children. If omitted, level defaults to
-INFO and logger defaults to the root logger.
-This method must be used as a context manager, and will yield
-a recording object with two attributes: output and records .
-At the end of the context manager, the output attribute will
-be a list of the matching formatted log messages and the
-records attribute will be a list of the corresponding LogRecord
-objects.
-Example:
-with self . assertLogs ( 'foo' , level = 'INFO' ) as cm :
- logging . getLogger ( 'foo' ) . info ( 'first message' )
- logging . getLogger ( 'foo.bar' ) . error ( 'second message' )
-self . assertEqual ( cm . output , [ 'INFO:foo:first message' ,
- 'ERROR:foo.bar:second message' ])
-
-
-
-
-
-
-assertMultiLineEqual ( first , second , msg = None )
-Assert that two multi-line strings are equal.
-
-
-
-
-assertNotAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is less than the given delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-Objects that are equal automatically fail.
-
-
-
-
-assertNotAlmostEquals ( ** kwargs )
-
-
-
-
-assertNotEqual ( first , second , msg = None )
-Fail if the two objects are equal as determined by the ‘!=’
-operator.
-
-
-
-
-assertNotEquals ( ** kwargs )
-
-
-
-
-assertNotIn ( member , container , msg = None )
-Just like self.assertTrue(a not in b), but with a nicer default message.
-
-
-
-
-assertNotIsInstance ( obj , cls , msg = None )
-Included for symmetry with assertIsInstance.
-
-
-
-
-assertNotRegex ( text , unexpected_regex , msg = None )
-Fail the test if the text matches the regular expression.
-
-
-
-
-assertNotRegexpMatches ( ** kwargs )
-
-
-
-
-assertRaises ( expected_exception , * args , ** kwargs )
-Fail unless an exception of class expected_exception is raised
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of exception is
-raised, it will not be caught, and the test case will be
-deemed to have suffered an error, exactly as for an
-unexpected exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertRaises ( SomeException ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertRaises
-is used as a context object.
-The context manager keeps a reference to the exception as
-the ‘exception’ attribute. This allows you to inspect the
-exception after the assertion:
-with self . assertRaises ( SomeException ) as cm :
- do_something ()
-the_exception = cm . exception
-self . assertEqual ( the_exception . error_code , 3 )
-
-
-
-
-
-
-assertRaisesRegex ( expected_exception , expected_regex , * args , ** kwargs )
-Asserts that the message in a raised exception matches a regex.
-
-Args: expected_exception: Exception class expected to be raised.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertRaisesRegex is used as a context manager.
-
-
-
-
-
-
-
-assertRaisesRegexp ( ** kwargs )
-
-
-
-
-assertRegex ( text , expected_regex , msg = None )
-Fail the test unless the text matches the regular expression.
-
-
-
-
-assertRegexpMatches ( ** kwargs )
-
-
-
-
-assertSequenceEqual ( seq1 , seq2 , msg = None , seq_type = None )
-An equality assertion for ordered sequences (like lists and tuples).
-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.
-
-Args: seq1: The first sequence to compare.
-seq2: The second sequence to compare.
-seq_type: The expected datatype of the sequences, or None if no
-
-datatype should be enforced.
-
-
-msg: Optional message to use on failure instead of a list of differences.
-
-
-
-
-
-
-
-
-assertSetEqual ( set1 , set2 , msg = None )
-A set-specific equality assertion.
-
-Args: set1: The first set to compare.
-set2: The second set to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-assertSetEqual uses ducktyping to support different types of sets, and
-is optimized for sets specifically (parameters must support a
-difference method).
-
-
-
-
-assertTrue ( expr , msg = None )
-Check that the expression is true.
-
-
-
-
-assertTupleEqual ( tuple1 , tuple2 , msg = None )
-A tuple-specific equality assertion.
-
-Args: tuple1: The first tuple to compare.
-tuple2: The second tuple to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertWarns ( expected_warning , * args , ** kwargs )
-Fail unless a warning of class warnClass is triggered
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of warning is
-triggered, it will not be handled: depending on the other
-warning filtering rules in effect, it might be silenced, printed
-out, or raised as an exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertWarns ( SomeWarning ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertWarns
-is used as a context object.
-The context manager keeps a reference to the first matching
-warning as the ‘warning’ attribute; similarly, the ‘filename’
-and ‘lineno’ attributes give you information about the line
-of Python code from which the warning was triggered.
-This allows you to inspect the warning after the assertion:
-with self . assertWarns ( SomeWarning ) as cm :
- do_something ()
-the_warning = cm . warning
-self . assertEqual ( the_warning . some_attribute , 147 )
-
-
-
-
-
-
-assertWarnsRegex ( expected_warning , expected_regex , * args , ** kwargs )
-Asserts that the message in a triggered warning matches a regexp.
-Basic functioning is similar to assertWarns() with the addition
-that only warnings whose messages also match the regular expression
-are considered successful matches.
-
-Args: expected_warning: Warning class expected to be triggered.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertWarnsRegex is used as a context manager.
-
-
-
-
-
-
-
-assert_ ( ** kwargs )
-
-
-
-
-countTestCases ( )
-
-
-
-
-debug ( )
-Run the test without collecting errors in a TestResult
-
-
-
-
-defaultTestResult ( )
-
-
-
-
-classmethod doClassCleanups ( )
-Execute all class cleanup functions. Normally called for you after
-tearDownClass.
-
-
-
-
-doCleanups ( )
-Execute all cleanup functions. Normally called for you after
-tearDown.
-
-
-
-
-fail ( msg = None )
-Fail immediately, with the given message.
-
-
-
-
-failIf ( ** kwargs )
-
-
-
-
-failIfAlmostEqual ( ** kwargs )
-
-
-
-
-failIfEqual ( ** kwargs )
-
-
-
-
-failUnless ( ** kwargs )
-
-
-
-
-failUnlessAlmostEqual ( ** kwargs )
-
-
-
-
-failUnlessEqual ( ** kwargs )
-
-
-
-
-failUnlessRaises ( ** kwargs )
-
-
-
-
-failureException
-alias of AssertionError
-
-
-
-
-id ( )
-
-
-
-
-longMessage = True
-
-
-
-
-maxDiff = 640
-
-
-
-
-run ( result = None )
-
-
-
-
-setUp ( )
-Hook method for setting up the test fixture before exercising it.
-
-
-
-
-classmethod setUpClass ( )
-Hook method for setting up class fixture before running tests in the class.
-
-
-
-
-shortDescription ( )
-Returns a one-line description of the test, or None if no
-description has been provided.
-The default implementation of this method returns the first line of
-the specified test method’s docstring.
-
-
-
-
-skipTest ( reason )
-Skip this test.
-
-
-
-
-subTest ( msg=<object object> , **params )
-Return a context manager that will return the enclosed block
-of code in a subtest identified by the optional message and
-keyword parameters. A failure in the subtest marks the test
-case as failed but resumes execution at the end of the enclosed
-block, allowing further test code to be executed.
-
-
-
-
-tearDown ( )
-Hook method for deconstructing the test fixture after testing it.
-
-
-
-
-classmethod tearDownClass ( )
-Hook method for deconstructing the class fixture after running all tests in the class.
-
-
-
-
-test_padding ( )
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.tests.SmartcardSAM_test.html b/docs/virtualsmartcard/api/virtualsmartcard.tests.SmartcardSAM_test.html
deleted file mode 100644
index d29f332..0000000
--- a/docs/virtualsmartcard/api/virtualsmartcard.tests.SmartcardSAM_test.html
+++ /dev/null
@@ -1,863 +0,0 @@
-
-
-
-
-
-
-
SmartcardSAM_test Module — vsmartcard 2021-04-28 documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Site
-
-
-
-
- Page
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
SmartcardSAM_test Module
-
-
-
-
-
-class virtualsmartcard.tests.SmartcardSAM_test. TestSmartcardSAM ( methodName = 'runTest' )
-Bases: unittest.case.TestCase
-
-
-_addExpectedFailure ( result , exc_info )
-
-
-
-
-_addSkip ( result , test_case , reason )
-
-
-
-
-_addUnexpectedSuccess ( result )
-
-
-
-
-_baseAssertEqual ( first , second , msg = None )
-The default assertEqual implementation, not type specific.
-
-
-
-
-_callCleanup ( function , / , * args , ** kwargs )
-
-
-
-
-_callSetUp ( )
-
-
-
-
-_callTearDown ( )
-
-
-
-
-_callTestMethod ( method )
-
-
-
-
-_classSetupFailed = False
-
-
-
-
-_class_cleanups = []
-
-
-
-
-_deprecate ( )
-
-
-
-
-_diffThreshold = 65536
-
-
-
-
-_feedErrorsToResult ( result , errors )
-
-
-
-
-_formatMessage ( msg , standardMsg )
-Honour the longMessage attribute when generating failure messages.
-If longMessage is False this means:
-* Use only an explicit message if it is provided
-* Otherwise use the standard message for the assert
-If longMessage is True:
-* Use the standard message
-* If an explicit message is provided, plus ‘ : ‘ and the explicit message
-
-
-
-
-_getAssertEqualityFunc ( first , second )
-Get a detailed comparison function for the types of the two args.
-Returns: A callable accepting (first, second, msg=None) that will
-raise a failure exception if first != second with a useful human
-readable error message for those types.
-
-
-
-
-_truncateMessage ( message , diff )
-
-
-
-
-classmethod addClassCleanup ( function , / , * args , ** kwargs )
-Same as addCleanup, except the cleanup items are called even if
-setUpClass fails (unlike tearDownClass).
-
-
-
-
-addCleanup ( function , / , * args , ** kwargs )
-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.
-Cleanup items are called even if setUp fails (unlike tearDown).
-
-
-
-
-addTypeEqualityFunc ( typeobj , function )
-Add a type specific assertEqual style function to compare a type.
-This method is for use by TestCase subclasses that need to register
-their own type equality functions to provide nicer error messages.
-
-Args:
-typeobj: The data type to call this function on when both values are of the same type in assertEqual().
-
-function: The callable taking two arguments and an optional msg= argument that raises self.failureException with a
-useful error message when the two arguments are not equal.
-
-
-
-
-
-
-
-
-assertAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is more than the given
-delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-If the two objects compare equal then they will automatically
-compare almost equal.
-
-
-
-
-assertAlmostEquals ( ** kwargs )
-
-
-
-
-assertCountEqual ( first , second , msg = None )
-Asserts that two iterables have the same elements, the same number of
-times, without regard to order.
-
-
-
-self.assertEqual(Counter(list(first)), Counter(list(second)))
-
-
-
-
-Example:
-[0, 1, 1] and [1, 0, 1] compare equal.
-[0, 0, 1] and [0, 1] compare unequal.
-
-
-
-
-
-
-
-
-assertDictContainsSubset ( subset , dictionary , msg = None )
-Checks whether dictionary is a superset of subset.
-
-
-
-
-assertDictEqual ( d1 , d2 , msg = None )
-
-
-
-
-assertEqual ( first , second , msg = None )
-Fail if the two objects are unequal as determined by the ‘==’
-operator.
-
-
-
-
-assertEquals ( ** kwargs )
-
-
-
-
-assertFalse ( expr , msg = None )
-Check that the expression is false.
-
-
-
-
-assertGreater ( a , b , msg = None )
-Just like self.assertTrue(a > b), but with a nicer default message.
-
-
-
-
-assertGreaterEqual ( a , b , msg = None )
-Just like self.assertTrue(a >= b), but with a nicer default message.
-
-
-
-
-assertIn ( member , container , msg = None )
-Just like self.assertTrue(a in b), but with a nicer default message.
-
-
-
-
-assertIs ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is b), but with a nicer default message.
-
-
-
-
-assertIsInstance ( obj , cls , msg = None )
-Same as self.assertTrue(isinstance(obj, cls)), with a nicer
-default message.
-
-
-
-
-assertIsNone ( obj , msg = None )
-Same as self.assertTrue(obj is None), with a nicer default message.
-
-
-
-
-assertIsNot ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is not b), but with a nicer default message.
-
-
-
-
-assertIsNotNone ( obj , msg = None )
-Included for symmetry with assertIsNone.
-
-
-
-
-assertLess ( a , b , msg = None )
-Just like self.assertTrue(a < b), but with a nicer default message.
-
-
-
-
-assertLessEqual ( a , b , msg = None )
-Just like self.assertTrue(a <= b), but with a nicer default message.
-
-
-
-
-assertListEqual ( list1 , list2 , msg = None )
-A list-specific equality assertion.
-
-Args: list1: The first list to compare.
-list2: The second list to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertLogs ( logger = None , level = None )
-Fail unless a log message of level level or higher is emitted
-on logger_name or its children. If omitted, level defaults to
-INFO and logger defaults to the root logger.
-This method must be used as a context manager, and will yield
-a recording object with two attributes: output and records .
-At the end of the context manager, the output attribute will
-be a list of the matching formatted log messages and the
-records attribute will be a list of the corresponding LogRecord
-objects.
-Example:
-with self . assertLogs ( 'foo' , level = 'INFO' ) as cm :
- logging . getLogger ( 'foo' ) . info ( 'first message' )
- logging . getLogger ( 'foo.bar' ) . error ( 'second message' )
-self . assertEqual ( cm . output , [ 'INFO:foo:first message' ,
- 'ERROR:foo.bar:second message' ])
-
-
-
-
-
-
-assertMultiLineEqual ( first , second , msg = None )
-Assert that two multi-line strings are equal.
-
-
-
-
-assertNotAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is less than the given delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-Objects that are equal automatically fail.
-
-
-
-
-assertNotAlmostEquals ( ** kwargs )
-
-
-
-
-assertNotEqual ( first , second , msg = None )
-Fail if the two objects are equal as determined by the ‘!=’
-operator.
-
-
-
-
-assertNotEquals ( ** kwargs )
-
-
-
-
-assertNotIn ( member , container , msg = None )
-Just like self.assertTrue(a not in b), but with a nicer default message.
-
-
-
-
-assertNotIsInstance ( obj , cls , msg = None )
-Included for symmetry with assertIsInstance.
-
-
-
-
-assertNotRegex ( text , unexpected_regex , msg = None )
-Fail the test if the text matches the regular expression.
-
-
-
-
-assertNotRegexpMatches ( ** kwargs )
-
-
-
-
-assertRaises ( expected_exception , * args , ** kwargs )
-Fail unless an exception of class expected_exception is raised
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of exception is
-raised, it will not be caught, and the test case will be
-deemed to have suffered an error, exactly as for an
-unexpected exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertRaises ( SomeException ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertRaises
-is used as a context object.
-The context manager keeps a reference to the exception as
-the ‘exception’ attribute. This allows you to inspect the
-exception after the assertion:
-with self . assertRaises ( SomeException ) as cm :
- do_something ()
-the_exception = cm . exception
-self . assertEqual ( the_exception . error_code , 3 )
-
-
-
-
-
-
-assertRaisesRegex ( expected_exception , expected_regex , * args , ** kwargs )
-Asserts that the message in a raised exception matches a regex.
-
-Args: expected_exception: Exception class expected to be raised.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertRaisesRegex is used as a context manager.
-
-
-
-
-
-
-
-assertRaisesRegexp ( ** kwargs )
-
-
-
-
-assertRegex ( text , expected_regex , msg = None )
-Fail the test unless the text matches the regular expression.
-
-
-
-
-assertRegexpMatches ( ** kwargs )
-
-
-
-
-assertSequenceEqual ( seq1 , seq2 , msg = None , seq_type = None )
-An equality assertion for ordered sequences (like lists and tuples).
-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.
-
-Args: seq1: The first sequence to compare.
-seq2: The second sequence to compare.
-seq_type: The expected datatype of the sequences, or None if no
-
-datatype should be enforced.
-
-
-msg: Optional message to use on failure instead of a list of differences.
-
-
-
-
-
-
-
-
-assertSetEqual ( set1 , set2 , msg = None )
-A set-specific equality assertion.
-
-Args: set1: The first set to compare.
-set2: The second set to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-assertSetEqual uses ducktyping to support different types of sets, and
-is optimized for sets specifically (parameters must support a
-difference method).
-
-
-
-
-assertTrue ( expr , msg = None )
-Check that the expression is true.
-
-
-
-
-assertTupleEqual ( tuple1 , tuple2 , msg = None )
-A tuple-specific equality assertion.
-
-Args: tuple1: The first tuple to compare.
-tuple2: The second tuple to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertWarns ( expected_warning , * args , ** kwargs )
-Fail unless a warning of class warnClass is triggered
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of warning is
-triggered, it will not be handled: depending on the other
-warning filtering rules in effect, it might be silenced, printed
-out, or raised as an exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertWarns ( SomeWarning ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertWarns
-is used as a context object.
-The context manager keeps a reference to the first matching
-warning as the ‘warning’ attribute; similarly, the ‘filename’
-and ‘lineno’ attributes give you information about the line
-of Python code from which the warning was triggered.
-This allows you to inspect the warning after the assertion:
-with self . assertWarns ( SomeWarning ) as cm :
- do_something ()
-the_warning = cm . warning
-self . assertEqual ( the_warning . some_attribute , 147 )
-
-
-
-
-
-
-assertWarnsRegex ( expected_warning , expected_regex , * args , ** kwargs )
-Asserts that the message in a triggered warning matches a regexp.
-Basic functioning is similar to assertWarns() with the addition
-that only warnings whose messages also match the regular expression
-are considered successful matches.
-
-Args: expected_warning: Warning class expected to be triggered.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertWarnsRegex is used as a context manager.
-
-
-
-
-
-
-
-assert_ ( ** kwargs )
-
-
-
-
-countTestCases ( )
-
-
-
-
-debug ( )
-Run the test without collecting errors in a TestResult
-
-
-
-
-defaultTestResult ( )
-
-
-
-
-classmethod doClassCleanups ( )
-Execute all class cleanup functions. Normally called for you after
-tearDownClass.
-
-
-
-
-doCleanups ( )
-Execute all cleanup functions. Normally called for you after
-tearDown.
-
-
-
-
-fail ( msg = None )
-Fail immediately, with the given message.
-
-
-
-
-failIf ( ** kwargs )
-
-
-
-
-failIfAlmostEqual ( ** kwargs )
-
-
-
-
-failIfEqual ( ** kwargs )
-
-
-
-
-failUnless ( ** kwargs )
-
-
-
-
-failUnlessAlmostEqual ( ** kwargs )
-
-
-
-
-failUnlessEqual ( ** kwargs )
-
-
-
-
-failUnlessRaises ( ** kwargs )
-
-
-
-
-failureException
-alias of AssertionError
-
-
-
-
-id ( )
-
-
-
-
-longMessage = True
-
-
-
-
-maxDiff = 640
-
-
-
-
-run ( result = None )
-
-
-
-
-setUp ( )
-Hook method for setting up the test fixture before exercising it.
-
-
-
-
-classmethod setUpClass ( )
-Hook method for setting up class fixture before running tests in the class.
-
-
-
-
-shortDescription ( )
-Returns a one-line description of the test, or None if no
-description has been provided.
-The default implementation of this method returns the first line of
-the specified test method’s docstring.
-
-
-
-
-skipTest ( reason )
-Skip this test.
-
-
-
-
-subTest ( msg=<object object> , **params )
-Return a context manager that will return the enclosed block
-of code in a subtest identified by the optional message and
-keyword parameters. A failure in the subtest marks the test
-case as failed but resumes execution at the end of the enclosed
-block, allowing further test code to be executed.
-
-
-
-
-tearDown ( )
-Hook method for deconstructing the test fixture after testing it.
-
-
-
-
-classmethod tearDownClass ( )
-Hook method for deconstructing the class fixture after running all tests in the class.
-
-
-
-
-test_counter_decrement ( )
-
-
-
-
-test_external_authenticate ( )
-
-
-
-
-test_incorrect_pin ( )
-
-
-
-
-test_internal_authenticate ( )
-
-
-
-
-test_security_environment ( )
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.tests.html b/docs/virtualsmartcard/api/virtualsmartcard.tests.html
deleted file mode 100644
index 6fa85e9..0000000
--- a/docs/virtualsmartcard/api/virtualsmartcard.tests.html
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-
-
-
tests Package — vsmartcard 2021-04-28 documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Site
-
-
-
-
- Page
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.tests.utils_test.html b/docs/virtualsmartcard/api/virtualsmartcard.tests.utils_test.html
deleted file mode 100644
index d84f40d..0000000
--- a/docs/virtualsmartcard/api/virtualsmartcard.tests.utils_test.html
+++ /dev/null
@@ -1,848 +0,0 @@
-
-
-
-
-
-
-
utils_test Module — vsmartcard 2021-04-28 documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Site
-
-
-
-
- Page
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
utils_test Module
-
-
-
-
-
-class virtualsmartcard.tests.utils_test. TestUtils ( methodName = 'runTest' )
-Bases: unittest.case.TestCase
-
-
-_addExpectedFailure ( result , exc_info )
-
-
-
-
-_addSkip ( result , test_case , reason )
-
-
-
-
-_addUnexpectedSuccess ( result )
-
-
-
-
-_baseAssertEqual ( first , second , msg = None )
-The default assertEqual implementation, not type specific.
-
-
-
-
-_callCleanup ( function , / , * args , ** kwargs )
-
-
-
-
-_callSetUp ( )
-
-
-
-
-_callTearDown ( )
-
-
-
-
-_callTestMethod ( method )
-
-
-
-
-_classSetupFailed = False
-
-
-
-
-_class_cleanups = []
-
-
-
-
-_deprecate ( )
-
-
-
-
-_diffThreshold = 65536
-
-
-
-
-_feedErrorsToResult ( result , errors )
-
-
-
-
-_formatMessage ( msg , standardMsg )
-Honour the longMessage attribute when generating failure messages.
-If longMessage is False this means:
-* Use only an explicit message if it is provided
-* Otherwise use the standard message for the assert
-If longMessage is True:
-* Use the standard message
-* If an explicit message is provided, plus ‘ : ‘ and the explicit message
-
-
-
-
-_getAssertEqualityFunc ( first , second )
-Get a detailed comparison function for the types of the two args.
-Returns: A callable accepting (first, second, msg=None) that will
-raise a failure exception if first != second with a useful human
-readable error message for those types.
-
-
-
-
-_truncateMessage ( message , diff )
-
-
-
-
-classmethod addClassCleanup ( function , / , * args , ** kwargs )
-Same as addCleanup, except the cleanup items are called even if
-setUpClass fails (unlike tearDownClass).
-
-
-
-
-addCleanup ( function , / , * args , ** kwargs )
-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.
-Cleanup items are called even if setUp fails (unlike tearDown).
-
-
-
-
-addTypeEqualityFunc ( typeobj , function )
-Add a type specific assertEqual style function to compare a type.
-This method is for use by TestCase subclasses that need to register
-their own type equality functions to provide nicer error messages.
-
-Args:
-typeobj: The data type to call this function on when both values are of the same type in assertEqual().
-
-function: The callable taking two arguments and an optional msg= argument that raises self.failureException with a
-useful error message when the two arguments are not equal.
-
-
-
-
-
-
-
-
-assertAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is more than the given
-delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-If the two objects compare equal then they will automatically
-compare almost equal.
-
-
-
-
-assertAlmostEquals ( ** kwargs )
-
-
-
-
-assertCountEqual ( first , second , msg = None )
-Asserts that two iterables have the same elements, the same number of
-times, without regard to order.
-
-
-
-self.assertEqual(Counter(list(first)), Counter(list(second)))
-
-
-
-
-Example:
-[0, 1, 1] and [1, 0, 1] compare equal.
-[0, 0, 1] and [0, 1] compare unequal.
-
-
-
-
-
-
-
-
-assertDictContainsSubset ( subset , dictionary , msg = None )
-Checks whether dictionary is a superset of subset.
-
-
-
-
-assertDictEqual ( d1 , d2 , msg = None )
-
-
-
-
-assertEqual ( first , second , msg = None )
-Fail if the two objects are unequal as determined by the ‘==’
-operator.
-
-
-
-
-assertEquals ( ** kwargs )
-
-
-
-
-assertFalse ( expr , msg = None )
-Check that the expression is false.
-
-
-
-
-assertGreater ( a , b , msg = None )
-Just like self.assertTrue(a > b), but with a nicer default message.
-
-
-
-
-assertGreaterEqual ( a , b , msg = None )
-Just like self.assertTrue(a >= b), but with a nicer default message.
-
-
-
-
-assertIn ( member , container , msg = None )
-Just like self.assertTrue(a in b), but with a nicer default message.
-
-
-
-
-assertIs ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is b), but with a nicer default message.
-
-
-
-
-assertIsInstance ( obj , cls , msg = None )
-Same as self.assertTrue(isinstance(obj, cls)), with a nicer
-default message.
-
-
-
-
-assertIsNone ( obj , msg = None )
-Same as self.assertTrue(obj is None), with a nicer default message.
-
-
-
-
-assertIsNot ( expr1 , expr2 , msg = None )
-Just like self.assertTrue(a is not b), but with a nicer default message.
-
-
-
-
-assertIsNotNone ( obj , msg = None )
-Included for symmetry with assertIsNone.
-
-
-
-
-assertLess ( a , b , msg = None )
-Just like self.assertTrue(a < b), but with a nicer default message.
-
-
-
-
-assertLessEqual ( a , b , msg = None )
-Just like self.assertTrue(a <= b), but with a nicer default message.
-
-
-
-
-assertListEqual ( list1 , list2 , msg = None )
-A list-specific equality assertion.
-
-Args: list1: The first list to compare.
-list2: The second list to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertLogs ( logger = None , level = None )
-Fail unless a log message of level level or higher is emitted
-on logger_name or its children. If omitted, level defaults to
-INFO and logger defaults to the root logger.
-This method must be used as a context manager, and will yield
-a recording object with two attributes: output and records .
-At the end of the context manager, the output attribute will
-be a list of the matching formatted log messages and the
-records attribute will be a list of the corresponding LogRecord
-objects.
-Example:
-with self . assertLogs ( 'foo' , level = 'INFO' ) as cm :
- logging . getLogger ( 'foo' ) . info ( 'first message' )
- logging . getLogger ( 'foo.bar' ) . error ( 'second message' )
-self . assertEqual ( cm . output , [ 'INFO:foo:first message' ,
- 'ERROR:foo.bar:second message' ])
-
-
-
-
-
-
-assertMultiLineEqual ( first , second , msg = None )
-Assert that two multi-line strings are equal.
-
-
-
-
-assertNotAlmostEqual ( first , second , places = None , msg = None , delta = None )
-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
-difference between the two objects is less than the given delta.
-Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most significant digit).
-Objects that are equal automatically fail.
-
-
-
-
-assertNotAlmostEquals ( ** kwargs )
-
-
-
-
-assertNotEqual ( first , second , msg = None )
-Fail if the two objects are equal as determined by the ‘!=’
-operator.
-
-
-
-
-assertNotEquals ( ** kwargs )
-
-
-
-
-assertNotIn ( member , container , msg = None )
-Just like self.assertTrue(a not in b), but with a nicer default message.
-
-
-
-
-assertNotIsInstance ( obj , cls , msg = None )
-Included for symmetry with assertIsInstance.
-
-
-
-
-assertNotRegex ( text , unexpected_regex , msg = None )
-Fail the test if the text matches the regular expression.
-
-
-
-
-assertNotRegexpMatches ( ** kwargs )
-
-
-
-
-assertRaises ( expected_exception , * args , ** kwargs )
-Fail unless an exception of class expected_exception is raised
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of exception is
-raised, it will not be caught, and the test case will be
-deemed to have suffered an error, exactly as for an
-unexpected exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertRaises ( SomeException ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertRaises
-is used as a context object.
-The context manager keeps a reference to the exception as
-the ‘exception’ attribute. This allows you to inspect the
-exception after the assertion:
-with self . assertRaises ( SomeException ) as cm :
- do_something ()
-the_exception = cm . exception
-self . assertEqual ( the_exception . error_code , 3 )
-
-
-
-
-
-
-assertRaisesRegex ( expected_exception , expected_regex , * args , ** kwargs )
-Asserts that the message in a raised exception matches a regex.
-
-Args: expected_exception: Exception class expected to be raised.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertRaisesRegex is used as a context manager.
-
-
-
-
-
-
-
-assertRaisesRegexp ( ** kwargs )
-
-
-
-
-assertRegex ( text , expected_regex , msg = None )
-Fail the test unless the text matches the regular expression.
-
-
-
-
-assertRegexpMatches ( ** kwargs )
-
-
-
-
-assertSequenceEqual ( seq1 , seq2 , msg = None , seq_type = None )
-An equality assertion for ordered sequences (like lists and tuples).
-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.
-
-Args: seq1: The first sequence to compare.
-seq2: The second sequence to compare.
-seq_type: The expected datatype of the sequences, or None if no
-
-datatype should be enforced.
-
-
-msg: Optional message to use on failure instead of a list of differences.
-
-
-
-
-
-
-
-
-assertSetEqual ( set1 , set2 , msg = None )
-A set-specific equality assertion.
-
-Args: set1: The first set to compare.
-set2: The second set to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-assertSetEqual uses ducktyping to support different types of sets, and
-is optimized for sets specifically (parameters must support a
-difference method).
-
-
-
-
-assertTrue ( expr , msg = None )
-Check that the expression is true.
-
-
-
-
-assertTupleEqual ( tuple1 , tuple2 , msg = None )
-A tuple-specific equality assertion.
-
-Args: tuple1: The first tuple to compare.
-tuple2: The second tuple to compare.
-msg: Optional message to use on failure instead of a list of
-
-
-
-
-
-
-
-
-assertWarns ( expected_warning , * args , ** kwargs )
-Fail unless a warning of class warnClass is triggered
-by the callable when invoked with specified positional and
-keyword arguments. If a different type of warning is
-triggered, it will not be handled: depending on the other
-warning filtering rules in effect, it might be silenced, printed
-out, or raised as an exception.
-If called with the callable and arguments omitted, will return a
-context object used like this:
-with self . assertWarns ( SomeWarning ):
- do_something ()
-
-
-An optional keyword argument ‘msg’ can be provided when assertWarns
-is used as a context object.
-The context manager keeps a reference to the first matching
-warning as the ‘warning’ attribute; similarly, the ‘filename’
-and ‘lineno’ attributes give you information about the line
-of Python code from which the warning was triggered.
-This allows you to inspect the warning after the assertion:
-with self . assertWarns ( SomeWarning ) as cm :
- do_something ()
-the_warning = cm . warning
-self . assertEqual ( the_warning . some_attribute , 147 )
-
-
-
-
-
-
-assertWarnsRegex ( expected_warning , expected_regex , * args , ** kwargs )
-Asserts that the message in a triggered warning matches a regexp.
-Basic functioning is similar to assertWarns() with the addition
-that only warnings whose messages also match the regular expression
-are considered successful matches.
-
-Args: expected_warning: Warning class expected to be triggered.
-expected_regex: Regex (re.Pattern object or string) expected
-
-to be found in error message.
-
-args: Function to be called and extra positional args.
-kwargs: Extra kwargs.
-msg: Optional message used in case of failure. Can only be used
-
-when assertWarnsRegex is used as a context manager.
-
-
-
-
-
-
-
-assert_ ( ** kwargs )
-
-
-
-
-countTestCases ( )
-
-
-
-
-debug ( )
-Run the test without collecting errors in a TestResult
-
-
-
-
-defaultTestResult ( )
-
-
-
-
-classmethod doClassCleanups ( )
-Execute all class cleanup functions. Normally called for you after
-tearDownClass.
-
-
-
-
-doCleanups ( )
-Execute all cleanup functions. Normally called for you after
-tearDown.
-
-
-
-
-fail ( msg = None )
-Fail immediately, with the given message.
-
-
-
-
-failIf ( ** kwargs )
-
-
-
-
-failIfAlmostEqual ( ** kwargs )
-
-
-
-
-failIfEqual ( ** kwargs )
-
-
-
-
-failUnless ( ** kwargs )
-
-
-
-
-failUnlessAlmostEqual ( ** kwargs )
-
-
-
-
-failUnlessEqual ( ** kwargs )
-
-
-
-
-failUnlessRaises ( ** kwargs )
-
-
-
-
-failureException
-alias of AssertionError
-
-
-
-
-id ( )
-
-
-
-
-longMessage = True
-
-
-
-
-maxDiff = 640
-
-
-
-
-run ( result = None )
-
-
-
-
-setUp ( )
-Hook method for setting up the test fixture before exercising it.
-
-
-
-
-classmethod setUpClass ( )
-Hook method for setting up class fixture before running tests in the class.
-
-
-
-
-shortDescription ( )
-Returns a one-line description of the test, or None if no
-description has been provided.
-The default implementation of this method returns the first line of
-the specified test method’s docstring.
-
-
-
-
-skipTest ( reason )
-Skip this test.
-
-
-
-
-subTest ( msg=<object object> , **params )
-Return a context manager that will return the enclosed block
-of code in a subtest identified by the optional message and
-keyword parameters. A failure in the subtest marks the test
-case as failed but resumes execution at the end of the enclosed
-block, allowing further test code to be executed.
-
-
-
-
-tearDown ( )
-Hook method for deconstructing the test fixture after testing it.
-
-
-
-
-classmethod tearDownClass ( )
-Hook method for deconstructing the class fixture after running all tests in the class.
-
-
-
-
-test_CAPDU ( )
-
-
-
-
-test_RAPDU ( )
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.utils.html b/docs/virtualsmartcard/api/virtualsmartcard.utils.html
index 2a00e32..62b1abe 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.utils.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.utils.html
@@ -4,7 +4,7 @@
-
utils Module — vsmartcard 2021-04-28 documentation
+
utils Module — vsmartcard 2023-09-27 documentation
@@ -12,16 +12,16 @@
-
-
-
-
+
+
+
+
@@ -123,7 +123,7 @@
-
+
utils Module
@@ -455,7 +455,7 @@ hexdump(b’A’, short=True) -> ‘00 41 (.A)’
- © Copyright 2009-2021 by Dominik Oepen and Frank Morgner.
+ © Copyright 2009-2023 by Dominik Oepen and Frank Morgner.