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:
-
Android Studio to build and deploy the application. Use
- to select vsmartcard/remote-reader .
-Attach your smartphone and choose .
+ to select
vsmartcard/remote-reader .
+Attach your smartphone and choose .
On the host system, where the smart card at the phone’s NFC interface is relayed to,
vpcd needs to be installed. It can be installed on Windows and Unix. On the
host computer, vpcd-config prints a QR code to configure the Remote
diff --git a/docs/search.html b/docs/search.html
index 80c1f49..afa7342 100644
--- a/docs/search.html
+++ b/docs/search.html
@@ -5,7 +5,7 @@
-
Search — vsmartcard 2017-01-08 documentation
+
Search — vsmartcard 2017-01-16 documentation
@@ -15,7 +15,7 @@
-
+
@@ -44,7 +44,7 @@
-
+
Virtual Smart Card
Remote Smart Card Reader
Android Smart Card Emulator
+
Tizen Smart Card Emulator
PC/SC Relay
USB CCID Emulator
diff --git a/docs/searchindex.js b/docs/searchindex.js
index 82c5316..fa9305c 100644
--- a/docs/searchindex.js
+++ b/docs/searchindex.js
@@ -1 +1 @@
-Search.setIndex({envversion:46,filenames:["ACardEmulator/README","ccid/README","index","npa/README","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.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"],objects:{"virtualsmartcard.CardGenerator":{CardGenerator:[9,2,1,""]},"virtualsmartcard.CardGenerator.CardGenerator":{"_CardGenerator__generate_cryptoflex":[9,1,1,""],"_CardGenerator__generate_ePass":[9,1,1,""],"_CardGenerator__generate_iso_card":[9,1,1,""],"_CardGenerator__generate_nPA":[9,1,1,""],generateCard:[9,1,1,""],getCard:[9,1,1,""],readDatagroups:[9,1,1,""],setCard:[9,1,1,""]},"virtualsmartcard.CryptoUtils":{"_makesalt":[11,5,1,""],append_padding:[11,5,1,""],calculate_MAC:[11,5,1,""],cipher:[11,5,1,""],crypto_checksum:[11,5,1,""],decrypt:[11,5,1,""],encrypt:[11,5,1,""],get_cipher:[11,5,1,""],get_cipher_blocklen:[11,5,1,""],get_cipher_keylen:[11,5,1,""],hash:[11,5,1,""],operation_on_string:[11,5,1,""],strip_padding:[11,5,1,""]},"virtualsmartcard.SEutils":{ControlReferenceTemplate:[12,2,1,""],Security_Environment:[12,2,1,""]},"virtualsmartcard.SEutils.ControlReferenceTemplate":{"_ControlReferenceTemplate__replace_tag":[12,1,1,""],"_ControlReferenceTemplate__set_algo":[12,1,1,""],"_ControlReferenceTemplate__set_iv":[12,1,1,""],"_ControlReferenceTemplate__set_key":[12,1,1,""],parse_SE_config:[12,1,1,""],to_string:[12,1,1,""]},"virtualsmartcard.SEutils.Security_Environment":{"_set_SE":[12,1,1,""],compute_cryptographic_checksum:[12,1,1,""],compute_digital_signature:[12,1,1,""],decipher:[12,1,1,""],encipher:[12,1,1,""],generate_public_key_pair:[12,1,1,""],hash:[12,1,1,""],manage_security_environment:[12,1,1,""],parse_SM_CAPDU:[12,1,1,""],perform_security_operation:[12,1,1,""],protect_response:[12,1,1,""],verify_certificate:[12,1,1,""],verify_cryptographic_checksum:[12,1,1,""],verify_digital_signature:[12,1,1,""]},"virtualsmartcard.SWutils":{SwError:[13,6,1,""]},"virtualsmartcard.SWutils.SwError":{args:[13,4,1,""],message:[13,4,1,""]},"virtualsmartcard.SmartcardFilesystem":{DF:[14,2,1,""],EF:[14,2,1,""],File:[14,2,1,""],MF:[14,2,1,""],Record:[14,2,1,""],RecordStructureEF:[14,2,1,""],TransparentStructureEF:[14,2,1,""],get_indexes:[14,5,1,""],getfile_byrefdataobj:[14,5,1,""],isEqual:[14,5,1,""],make_property:[14,5,1,""],prettyprint_anything:[14,5,1,""],walk:[14,5,1,""],write:[14,5,1,""]},"virtualsmartcard.SmartcardFilesystem.DF":{append:[14,1,1,""],appendrecord:[14,1,1,""],bertlv_data:[14,4,1,""],content:[14,4,1,""],data:[14,4,1,""],decrypt:[14,1,1,""],dfname:[14,4,1,""],encrypt:[14,1,1,""],erasebinary:[14,1,1,""],fid:[14,4,1,""],filedescriptor:[14,4,1,""],getdata:[14,1,1,""],getpath:[14,1,1,""],lifecycle:[14,4,1,""],parent:[14,4,1,""],putdata:[14,1,1,""],readbinary:[14,1,1,""],readrecord:[14,1,1,""],remove:[14,1,1,""],select:[14,1,1,""],simpletlv_data:[14,4,1,""],updatebinary:[14,1,1,""],updaterecord:[14,1,1,""],writebinary:[14,1,1,""],writerecord:[14,1,1,""]},"virtualsmartcard.SmartcardFilesystem.EF":{appendrecord:[14,1,1,""],bertlv_data:[14,4,1,""],datacoding:[14,4,1,""],decrypt:[14,1,1,""],encrypt:[14,1,1,""],erasebinary:[14,1,1,""],fid:[14,4,1,""],filedescriptor:[14,4,1,""],getdata:[14,1,1,""],getpath:[14,1,1,""],lifecycle:[14,4,1,""],parent:[14,4,1,""],putdata:[14,1,1,""],readbinary:[14,1,1,""],readrecord:[14,1,1,""],select:[14,1,1,""],shortfid:[14,4,1,""],simpletlv_data:[14,4,1,""],updatebinary:[14,1,1,""],updaterecord:[14,1,1,""],writebinary:[14,1,1,""],writerecord:[14,1,1,""]},"virtualsmartcard.SmartcardFilesystem.File":{appendrecord:[14,1,1,""],bertlv_data:[14,4,1,""],decrypt:[14,1,1,""],encrypt:[14,1,1,""],erasebinary:[14,1,1,""],fid:[14,4,1,""],filedescriptor:[14,4,1,""],getdata:[14,1,1,""],getpath:[14,1,1,""],lifecycle:[14,4,1,""],parent:[14,4,1,""],putdata:[14,1,1,""],readbinary:[14,1,1,""],readrecord:[14,1,1,""],select:[14,1,1,""],simpletlv_data:[14,4,1,""],updatebinary:[14,1,1,""],updaterecord:[14,1,1,""],writebinary:[14,1,1,""],writerecord:[14,1,1,""]},"virtualsmartcard.SmartcardFilesystem.MF":{"_selectFile":[14,1,1,""],append:[14,1,1,""],appendRecord:[14,1,1,""],appendrecord:[14,1,1,""],bertlv_data:[14,4,1,""],content:[14,4,1,""],create:[14,3,1,""],createFile:[14,1,1,""],current:[14,4,1,""],currentDF:[14,1,1,""],currentEF:[14,1,1,""],data:[14,4,1,""],dataObjectHandlingDecodeEncapsulated:[14,1,1,""],dataObjectHandlingDecodePlain:[14,1,1,""],dataUnitsDecodeEncapsulated:[14,1,1,""],dataUnitsDecodePlain:[14,1,1,""],decrypt:[14,1,1,""],deleteFile:[14,1,1,""],dfname:[14,4,1,""],encodeFileControlParameter:[14,3,1,""],encrypt:[14,1,1,""],eraseBinaryEncapsulated:[14,1,1,""],eraseBinaryPlain:[14,1,1,""],eraseRecord:[14,1,1,""],erasebinary:[14,1,1,""],fid:[14,4,1,""],filedescriptor:[14,4,1,""],firstSFT:[14,4,1,""],getDataEncapsulated:[14,1,1,""],getDataPlain:[14,1,1,""],getdata:[14,1,1,""],getpath:[14,1,1,""],lifecycle:[14,4,1,""],makeFirstSoftwareFunctionTable:[14,3,1,""],makeSecondSoftwareFunctionTable:[14,3,1,""],parent:[14,4,1,""],putDataEncapsulated:[14,1,1,""],putDataPlain:[14,1,1,""],putdata:[14,1,1,""],readBinaryEncapsulated:[14,1,1,""],readBinaryPlain:[14,1,1,""],readRecordEncapsulated:[14,1,1,""],readRecordPlain:[14,1,1,""],readbinary:[14,1,1,""],readrecord:[14,1,1,""],recordHandlingDecode:[14,1,1,""],remove:[14,1,1,""],searchBinaryEncapsulated:[14,1,1,""],searchBinaryPlain:[14,1,1,""],secondSFT:[14,4,1,""],select:[14,1,1,""],selectFile:[14,1,1,""],simpletlv_data:[14,4,1,""],updateBinaryEncapsulated:[14,1,1,""],updateBinaryPlain:[14,1,1,""],updateRecordEncapsulated:[14,1,1,""],updateRecordPlain:[14,1,1,""],updatebinary:[14,1,1,""],updaterecord:[14,1,1,""],writeBinaryEncapsulated:[14,1,1,""],writeBinaryPlain:[14,1,1,""],writeRecord:[14,1,1,""],writebinary:[14,1,1,""],writerecord:[14,1,1,""]},"virtualsmartcard.SmartcardFilesystem.Record":{data:[14,4,1,""],identifier:[14,4,1,""]},"virtualsmartcard.SmartcardFilesystem.RecordStructureEF":{"_RecordStructureEF__getRecords":[14,1,1,""],"_RecordStructureEF__getRecordsByIdentifier":[14,1,1,""],"_RecordStructureEF__getRecordsByNumber":[14,1,1,""],appendrecord:[14,1,1,""],bertlv_data:[14,4,1,""],datacoding:[14,4,1,""],decrypt:[14,1,1,""],encrypt:[14,1,1,""],erasebinary:[14,1,1,""],eraserecord:[14,1,1,""],fid:[14,4,1,""],filedescriptor:[14,4,1,""],getdata:[14,1,1,""],getpath:[14,1,1,""],hasFixedRecordSize:[14,1,1,""],hasSimpleTlv:[14,1,1,""],isCyclic:[14,1,1,""],lifecycle:[14,4,1,""],maxrecordsize:[14,4,1,""],parent:[14,4,1,""],putdata:[14,1,1,""],readbinary:[14,1,1,""],readrecord:[14,1,1,""],recordpointer:[14,4,1,""],records:[14,4,1,""],resetRecordPointer:[14,1,1,""],select:[14,1,1,""],shortfid:[14,4,1,""],simpletlv_data:[14,4,1,""],updatebinary:[14,1,1,""],updaterecord:[14,1,1,""],writebinary:[14,1,1,""],writerecord:[14,1,1,""]},"virtualsmartcard.SmartcardFilesystem.TransparentStructureEF":{appendrecord:[14,1,1,""],bertlv_data:[14,4,1,""],data:[14,4,1,""],datacoding:[14,4,1,""],decrypt:[14,1,1,""],encrypt:[14,1,1,""],erasebinary:[14,1,1,""],fid:[14,4,1,""],filedescriptor:[14,4,1,""],getdata:[14,1,1,""],getpath:[14,1,1,""],lifecycle:[14,4,1,""],parent:[14,4,1,""],putdata:[14,1,1,""],readbinary:[14,1,1,""],readrecord:[14,1,1,""],select:[14,1,1,""],shortfid:[14,4,1,""],simpletlv_data:[14,4,1,""],updatebinary:[14,1,1,""],updaterecord:[14,1,1,""],writebinary:[14,1,1,""],writerecord:[14,1,1,""]},"virtualsmartcard.SmartcardSAM":{SAM:[15,2,1,""],get_referenced_cipher:[15,5,1,""]},"virtualsmartcard.SmartcardSAM.SAM":{"_get_referenced_key":[15,1,1,""],FSdecrypt:[15,1,1,""],FSencrypt:[15,1,1,""],change_reference_data:[15,1,1,""],erase_SE:[15,1,1,""],external_authenticate:[15,1,1,""],generate_public_key_pair:[15,1,1,""],get_card_number:[15,1,1,""],get_challenge:[15,1,1,""],internal_authenticate:[15,1,1,""],manage_security_environment:[15,1,1,""],mutual_authenticate:[15,1,1,""],parse_SM_CAPDU:[15,1,1,""],perform_security_operation:[15,1,1,""],protect_result:[15,1,1,""],restore_SE:[15,1,1,""],set_MF:[15,1,1,""],set_asym_algorithm:[15,1,1,""],store_SE:[15,1,1,""],verify:[15,1,1,""]},"virtualsmartcard.TLVutils":{bertlv_pack:[16,5,1,""],bertlv_unpack:[16,5,1,""],decodeDiscretionaryDataObjects:[16,5,1,""],decodeExtendedHeaderList:[16,5,1,""],decodeHeaderList:[16,5,1,""],decodeOffsetDataObjects:[16,5,1,""],decodeTagList:[16,5,1,""],encodeDataOffsetObjects:[16,5,1,""],encodeDiscretionaryDataObjects:[16,5,1,""],encodebertlvDatalist:[16,5,1,""],pack:[16,5,1,""],simpletlv_pack:[16,5,1,""],simpletlv_unpack:[16,5,1,""],tlv_find_tag:[16,5,1,""],tlv_find_tags:[16,5,1,""],tlv_unpack:[16,5,1,""],unpack:[16,5,1,""]},"virtualsmartcard.VirtualSmartcard":{Iso7816OS:[17,2,1,""],SmartcardOS:[17,2,1,""],VirtualICC:[17,2,1,""]},"virtualsmartcard.VirtualSmartcard.Iso7816OS":{SAM:[17,4,1,""],execute:[17,1,1,""],formatResult:[17,1,1,""],getATR:[17,1,1,""],getResponse:[17,1,1,""],makeATR:[17,3,1,""],makeThirdSoftwareFunctionTable:[17,3,1,""],mf:[17,4,1,""],powerDown:[17,1,1,""],powerUp:[17,1,1,""],reset:[17,1,1,""],seekable:[17,3,1,""]},"virtualsmartcard.VirtualSmartcard.SmartcardOS":{execute:[17,1,1,""],getATR:[17,1,1,""],powerDown:[17,1,1,""],powerUp:[17,1,1,""],reset:[17,1,1,""]},"virtualsmartcard.VirtualSmartcard.VirtualICC":{"_VirtualICC__recvFromVPICC":[17,1,1,""],"_VirtualICC__sendToVPICC":[17,1,1,""],connectToPort:[17,3,1,""],openPort:[17,3,1,""],run:[17,1,1,""],signalHandler:[17,1,1,""],stop:[17,1,1,""]},"virtualsmartcard.cards":{HandlerTest:[19,0,0,"-"],Relay:[20,0,0,"-"],cryptoflex:[21,0,0,"-"],ePass:[22,0,0,"-"],nPA:[23,0,0,"-"]},"virtualsmartcard.cards.HandlerTest":{HandlerTestOS:[19,2,1,""]},"virtualsmartcard.cards.HandlerTest.HandlerTestOS":{"_HandlerTestOS__output_from_le":[19,1,1,""],execute:[19,1,1,""],getATR:[19,1,1,""],powerDown:[19,1,1,""],powerUp:[19,1,1,""],reset:[19,1,1,""]},"virtualsmartcard.cards.Relay":{RelayOS:[20,2,1,""]},"virtualsmartcard.cards.Relay.RelayOS":{cleanup:[20,1,1,""],execute:[20,1,1,""],getATR:[20,1,1,""],powerDown:[20,1,1,""],powerUp:[20,1,1,""],reset:[20,1,1,""]},"virtualsmartcard.cards.cryptoflex":{CryptoflexMF:[21,2,1,""],CryptoflexOS:[21,2,1,""],CryptoflexSAM:[21,2,1,""],CryptoflexSE:[21,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexMF":{"_selectFile":[21,1,1,""],append:[21,1,1,""],appendRecord:[21,1,1,""],appendrecord:[21,1,1,""],bertlv_data:[21,4,1,""],content:[21,4,1,""],create:[21,3,1,""],createFile:[21,1,1,""],current:[21,4,1,""],currentDF:[21,1,1,""],currentEF:[21,1,1,""],data:[21,4,1,""],dataObjectHandlingDecodeEncapsulated:[21,1,1,""],dataObjectHandlingDecodePlain:[21,1,1,""],dataUnitsDecodeEncapsulated:[21,1,1,""],dataUnitsDecodePlain:[21,1,1,""],decrypt:[21,1,1,""],deleteFile:[21,1,1,""],dfname:[21,4,1,""],encodeFileControlParameter:[21,1,1,""],encrypt:[21,1,1,""],eraseBinaryEncapsulated:[21,1,1,""],eraseBinaryPlain:[21,1,1,""],eraseRecord:[21,1,1,""],erasebinary:[21,1,1,""],fid:[21,4,1,""],filedescriptor:[21,4,1,""],firstSFT:[21,4,1,""],getDataEncapsulated:[21,1,1,""],getDataPlain:[21,1,1,""],getdata:[21,1,1,""],getpath:[21,1,1,""],lifecycle:[21,4,1,""],makeFirstSoftwareFunctionTable:[21,1,1,""],makeSecondSoftwareFunctionTable:[21,1,1,""],parent:[21,4,1,""],putDataEncapsulated:[21,1,1,""],putDataPlain:[21,1,1,""],putdata:[21,1,1,""],readBinaryEncapsulated:[21,1,1,""],readBinaryPlain:[21,1,1,""],readRecordEncapsulated:[21,1,1,""],readRecordPlain:[21,1,1,""],readbinary:[21,1,1,""],readrecord:[21,1,1,""],recordHandlingDecode:[21,1,1,""],remove:[21,1,1,""],searchBinaryEncapsulated:[21,1,1,""],searchBinaryPlain:[21,1,1,""],secondSFT:[21,4,1,""],select:[21,1,1,""],selectFile:[21,1,1,""],simpletlv_data:[21,4,1,""],updateBinaryEncapsulated:[21,1,1,""],updateBinaryPlain:[21,1,1,""],updateRecordEncapsulated:[21,1,1,""],updateRecordPlain:[21,1,1,""],updatebinary:[21,1,1,""],updaterecord:[21,1,1,""],writeBinaryEncapsulated:[21,1,1,""],writeBinaryPlain:[21,1,1,""],writeRecord:[21,1,1,""],writebinary:[21,1,1,""],writerecord:[21,1,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexOS":{SAM:[21,4,1,""],execute:[21,1,1,""],formatResult:[21,1,1,""],getATR:[21,1,1,""],getResponse:[21,1,1,""],makeATR:[21,1,1,""],makeThirdSoftwareFunctionTable:[21,1,1,""],mf:[21,4,1,""],powerDown:[21,1,1,""],powerUp:[21,1,1,""],reset:[21,1,1,""],seekable:[21,1,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSAM":{"_get_referenced_key":[21,1,1,""],FSdecrypt:[21,1,1,""],FSencrypt:[21,1,1,""],change_reference_data:[21,1,1,""],erase_SE:[21,1,1,""],external_authenticate:[21,1,1,""],generate_public_key_pair:[21,1,1,""],get_card_number:[21,1,1,""],get_challenge:[21,1,1,""],internal_authenticate:[21,1,1,""],manage_security_environment:[21,1,1,""],mutual_authenticate:[21,1,1,""],parse_SM_CAPDU:[21,1,1,""],perform_security_operation:[21,1,1,""],pezorform_security_operation:[21,1,1,""],protect_result:[21,1,1,""],restore_SE:[21,1,1,""],set_MF:[21,1,1,""],set_asym_algorithm:[21,1,1,""],store_SE:[21,1,1,""],verify:[21,1,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSE":{"_set_SE":[21,1,1,""],compute_cryptographic_checksum:[21,1,1,""],compute_digital_signature:[21,1,1,""],decipher:[21,1,1,""],encipher:[21,1,1,""],generate_public_key_pair:[21,1,1,""],hash:[21,1,1,""],manage_security_environment:[21,1,1,""],parse_SM_CAPDU:[21,1,1,""],perform_security_operation:[21,1,1,""],protect_response:[21,1,1,""],verify_certificate:[21,1,1,""],verify_cryptographic_checksum:[21,1,1,""],verify_digital_signature:[21,1,1,""]},"virtualsmartcard.cards.ePass":{PassportSAM:[22,2,1,""],ePass_SE:[22,2,1,""]},"virtualsmartcard.cards.ePass.PassportSAM":{"_PassportSAM__computeKeys":[22,1,1,""],"_get_referenced_key":[22,1,1,""],FSdecrypt:[22,1,1,""],FSencrypt:[22,1,1,""],change_reference_data:[22,1,1,""],derive_key:[22,3,1,""],erase_SE:[22,1,1,""],external_authenticate:[22,1,1,""],generate_public_key_pair:[22,1,1,""],get_card_number:[22,1,1,""],get_challenge:[22,1,1,""],internal_authenticate:[22,1,1,""],manage_security_environment:[22,1,1,""],mutual_authenticate:[22,1,1,""],parse_SM_CAPDU:[22,1,1,""],perform_security_operation:[22,1,1,""],protect_result:[22,1,1,""],restore_SE:[22,1,1,""],set_MF:[22,1,1,""],set_asym_algorithm:[22,1,1,""],store_SE:[22,1,1,""],verify:[22,1,1,""]},"virtualsmartcard.cards.ePass.ePass_SE":{"_set_SE":[22,1,1,""],compute_cryptographic_checksum:[22,1,1,""],compute_digital_signature:[22,1,1,""],decipher:[22,1,1,""],encipher:[22,1,1,""],generate_public_key_pair:[22,1,1,""],hash:[22,1,1,""],manage_security_environment:[22,1,1,""],parse_SM_CAPDU:[22,1,1,""],perform_security_operation:[22,1,1,""],protect_response:[22,1,1,""],verify_certificate:[22,1,1,""],verify_cryptographic_checksum:[22,1,1,""],verify_digital_signature:[22,1,1,""]},"virtualsmartcard.cards.nPA":{NPAOS:[23,2,1,""],nPA_AT_CRT:[23,2,1,""],nPA_SAM:[23,2,1,""],nPA_SE:[23,2,1,""]},"virtualsmartcard.cards.nPA.NPAOS":{SAM:[23,4,1,""],execute:[23,1,1,""],formatResult:[23,1,1,""],getATR:[23,1,1,""],getResponse:[23,1,1,""],makeATR:[23,1,1,""],makeThirdSoftwareFunctionTable:[23,1,1,""],mf:[23,4,1,""],powerDown:[23,1,1,""],powerUp:[23,1,1,""],reset:[23,1,1,""],seekable:[23,1,1,""]},"virtualsmartcard.cards.nPA.nPA_AT_CRT":{"_ControlReferenceTemplate__replace_tag":[23,1,1,""],"_ControlReferenceTemplate__set_algo":[23,1,1,""],"_ControlReferenceTemplate__set_iv":[23,1,1,""],"_ControlReferenceTemplate__set_key":[23,1,1,""],PACE_CAN:[23,4,1,""],PACE_MRZ:[23,4,1,""],PACE_PIN:[23,4,1,""],PACE_PUK:[23,4,1,""],keyref_is_can:[23,1,1,""],keyref_is_mrz:[23,1,1,""],keyref_is_pin:[23,1,1,""],keyref_is_puk:[23,1,1,""],parse_SE_config:[23,1,1,""],to_string:[23,1,1,""]},"virtualsmartcard.cards.nPA.nPA_SAM":{"_get_referenced_key":[23,1,1,""],FSdecrypt:[23,1,1,""],FSencrypt:[23,1,1,""],change_reference_data:[23,1,1,""],erase_SE:[23,1,1,""],external_authenticate:[23,1,1,""],general_authenticate:[23,1,1,""],generate_public_key_pair:[23,1,1,""],get_card_number:[23,1,1,""],get_challenge:[23,1,1,""],internal_authenticate:[23,1,1,""],manage_security_environment:[23,1,1,""],mutual_authenticate:[23,1,1,""],parse_SM_CAPDU:[23,1,1,""],perform_security_operation:[23,1,1,""],protect_result:[23,1,1,""],reset_retry_counter:[23,1,1,""],restore_SE:[23,1,1,""],set_MF:[23,1,1,""],set_asym_algorithm:[23,1,1,""],store_SE:[23,1,1,""],verify:[23,1,1,""]},"virtualsmartcard.cards.nPA.nPA_SE":{"_nPA_SE__eac_ca":[23,1,1,""],"_nPA_SE__eac_pace_step1":[23,1,1,""],"_nPA_SE__eac_pace_step2":[23,1,1,""],"_nPA_SE__eac_pace_step3":[23,1,1,""],"_nPA_SE__eac_pace_step4":[23,1,1,""],"_nPA_SE__pack_general_authenticate":[23,3,1,""],"_nPA_SE__unpack_general_authenticate":[23,3,1,""],"_set_SE":[23,1,1,""],compute_cryptographic_checksum:[23,1,1,""],compute_digital_signature:[23,1,1,""],decipher:[23,1,1,""],eac_step:[23,4,1,""],encipher:[23,1,1,""],external_authenticate:[23,1,1,""],general_authenticate:[23,1,1,""],generate_public_key_pair:[23,1,1,""],hash:[23,1,1,""],manage_security_environment:[23,1,1,""],parse_SM_CAPDU:[23,1,1,""],perform_security_operation:[23,1,1,""],protect_response:[23,1,1,""],verify_certificate:[23,1,1,""],verify_cryptographic_checksum:[23,1,1,""],verify_digital_signature:[23,1,1,""]},"virtualsmartcard.tests":{CardGenerator_test:[25,0,0,"-"],CryptoUtils_test:[26,0,0,"-"],SmartcardSAM_test:[27,0,0,"-"],utils_test:[28,0,0,"-"]},"virtualsmartcard.tests.CardGenerator_test":{CryptoflexGeneratorTest:[25,2,1,""],ISO7816GeneratorTest:[25,2,1,""],TestNPACardGenerator:[25,2,1,""]},"virtualsmartcard.tests.CardGenerator_test.CryptoflexGeneratorTest":{"_addSkip":[25,1,1,""],"_baseAssertEqual":[25,1,1,""],"_classSetupFailed":[25,4,1,""],"_deprecate":[25,1,1,""],"_diffThreshold":[25,4,1,""],"_formatMessage":[25,1,1,""],"_getAssertEqualityFunc":[25,1,1,""],"_truncateMessage":[25,1,1,""],addCleanup:[25,1,1,""],addTypeEqualityFunc:[25,1,1,""],assertAlmostEqual:[25,1,1,""],assertAlmostEquals:[25,1,1,""],assertDictContainsSubset:[25,1,1,""],assertDictEqual:[25,1,1,""],assertEqual:[25,1,1,""],assertEquals:[25,1,1,""],assertFalse:[25,1,1,""],assertGreater:[25,1,1,""],assertGreaterEqual:[25,1,1,""],assertIn:[25,1,1,""],assertIs:[25,1,1,""],assertIsInstance:[25,1,1,""],assertIsNone:[25,1,1,""],assertIsNot:[25,1,1,""],assertIsNotNone:[25,1,1,""],assertItemsEqual:[25,1,1,""],assertLess:[25,1,1,""],assertLessEqual:[25,1,1,""],assertListEqual:[25,1,1,""],assertMultiLineEqual:[25,1,1,""],assertNotAlmostEqual:[25,1,1,""],assertNotAlmostEquals:[25,1,1,""],assertNotEqual:[25,1,1,""],assertNotEquals:[25,1,1,""],assertNotIn:[25,1,1,""],assertNotIsInstance:[25,1,1,""],assertNotRegexpMatches:[25,1,1,""],assertRaises:[25,1,1,""],assertRaisesRegexp:[25,1,1,""],assertRegexpMatches:[25,1,1,""],assertSequenceEqual:[25,1,1,""],assertSetEqual:[25,1,1,""],assertTrue:[25,1,1,""],assertTupleEqual:[25,1,1,""],assert_:[25,1,1,""],card_type:[25,4,1,""],countTestCases:[25,1,1,""],debug:[25,1,1,""],defaultTestResult:[25,1,1,""],doCleanups:[25,1,1,""],fail:[25,1,1,""],failIf:[25,1,1,""],failIfAlmostEqual:[25,1,1,""],failIfEqual:[25,1,1,""],failUnless:[25,1,1,""],failUnlessAlmostEqual:[25,1,1,""],failUnlessEqual:[25,1,1,""],failUnlessRaises:[25,1,1,""],failureException:[25,4,1,""],id:[25,1,1,""],longMessage:[25,4,1,""],maxDiff:[25,4,1,""],run:[25,1,1,""],setUp:[25,1,1,""],setUpClass:[25,1,1,""],shortDescription:[25,1,1,""],skipTest:[25,1,1,""],tearDown:[25,1,1,""],tearDownClass:[25,1,1,""],test_card_creation:[25,1,1,""],test_get_and_set_card:[25,1,1,""]},"virtualsmartcard.tests.CardGenerator_test.ISO7816GeneratorTest":{"_addSkip":[25,1,1,""],"_baseAssertEqual":[25,1,1,""],"_classSetupFailed":[25,4,1,""],"_deprecate":[25,1,1,""],"_diffThreshold":[25,4,1,""],"_formatMessage":[25,1,1,""],"_getAssertEqualityFunc":[25,1,1,""],"_truncateMessage":[25,1,1,""],addCleanup:[25,1,1,""],addTypeEqualityFunc:[25,1,1,""],assertAlmostEqual:[25,1,1,""],assertAlmostEquals:[25,1,1,""],assertDictContainsSubset:[25,1,1,""],assertDictEqual:[25,1,1,""],assertEqual:[25,1,1,""],assertEquals:[25,1,1,""],assertFalse:[25,1,1,""],assertGreater:[25,1,1,""],assertGreaterEqual:[25,1,1,""],assertIn:[25,1,1,""],assertIs:[25,1,1,""],assertIsInstance:[25,1,1,""],assertIsNone:[25,1,1,""],assertIsNot:[25,1,1,""],assertIsNotNone:[25,1,1,""],assertItemsEqual:[25,1,1,""],assertLess:[25,1,1,""],assertLessEqual:[25,1,1,""],assertListEqual:[25,1,1,""],assertMultiLineEqual:[25,1,1,""],assertNotAlmostEqual:[25,1,1,""],assertNotAlmostEquals:[25,1,1,""],assertNotEqual:[25,1,1,""],assertNotEquals:[25,1,1,""],assertNotIn:[25,1,1,""],assertNotIsInstance:[25,1,1,""],assertNotRegexpMatches:[25,1,1,""],assertRaises:[25,1,1,""],assertRaisesRegexp:[25,1,1,""],assertRegexpMatches:[25,1,1,""],assertSequenceEqual:[25,1,1,""],assertSetEqual:[25,1,1,""],assertTrue:[25,1,1,""],assertTupleEqual:[25,1,1,""],assert_:[25,1,1,""],card_type:[25,4,1,""],countTestCases:[25,1,1,""],debug:[25,1,1,""],defaultTestResult:[25,1,1,""],doCleanups:[25,1,1,""],fail:[25,1,1,""],failIf:[25,1,1,""],failIfAlmostEqual:[25,1,1,""],failIfEqual:[25,1,1,""],failUnless:[25,1,1,""],failUnlessAlmostEqual:[25,1,1,""],failUnlessEqual:[25,1,1,""],failUnlessRaises:[25,1,1,""],failureException:[25,4,1,""],id:[25,1,1,""],longMessage:[25,4,1,""],maxDiff:[25,4,1,""],run:[25,1,1,""],setUp:[25,1,1,""],setUpClass:[25,1,1,""],shortDescription:[25,1,1,""],skipTest:[25,1,1,""],tearDown:[25,1,1,""],tearDownClass:[25,1,1,""],test_card_creation:[25,1,1,""],test_get_and_set_card:[25,1,1,""]},"virtualsmartcard.tests.CardGenerator_test.TestNPACardGenerator":{"_addSkip":[25,1,1,""],"_baseAssertEqual":[25,1,1,""],"_classSetupFailed":[25,4,1,""],"_deprecate":[25,1,1,""],"_diffThreshold":[25,4,1,""],"_formatMessage":[25,1,1,""],"_getAssertEqualityFunc":[25,1,1,""],"_truncateMessage":[25,1,1,""],addCleanup:[25,1,1,""],addTypeEqualityFunc:[25,1,1,""],assertAlmostEqual:[25,1,1,""],assertAlmostEquals:[25,1,1,""],assertDictContainsSubset:[25,1,1,""],assertDictEqual:[25,1,1,""],assertEqual:[25,1,1,""],assertEquals:[25,1,1,""],assertFalse:[25,1,1,""],assertGreater:[25,1,1,""],assertGreaterEqual:[25,1,1,""],assertIn:[25,1,1,""],assertIs:[25,1,1,""],assertIsInstance:[25,1,1,""],assertIsNone:[25,1,1,""],assertIsNot:[25,1,1,""],assertIsNotNone:[25,1,1,""],assertItemsEqual:[25,1,1,""],assertLess:[25,1,1,""],assertLessEqual:[25,1,1,""],assertListEqual:[25,1,1,""],assertMultiLineEqual:[25,1,1,""],assertNotAlmostEqual:[25,1,1,""],assertNotAlmostEquals:[25,1,1,""],assertNotEqual:[25,1,1,""],assertNotEquals:[25,1,1,""],assertNotIn:[25,1,1,""],assertNotIsInstance:[25,1,1,""],assertNotRegexpMatches:[25,1,1,""],assertRaises:[25,1,1,""],assertRaisesRegexp:[25,1,1,""],assertRegexpMatches:[25,1,1,""],assertSequenceEqual:[25,1,1,""],assertSetEqual:[25,1,1,""],assertTrue:[25,1,1,""],assertTupleEqual:[25,1,1,""],assert_:[25,1,1,""],card_type:[25,4,1,""],countTestCases:[25,1,1,""],debug:[25,1,1,""],defaultTestResult:[25,1,1,""],doCleanups:[25,1,1,""],fail:[25,1,1,""],failIf:[25,1,1,""],failIfAlmostEqual:[25,1,1,""],failIfEqual:[25,1,1,""],failUnless:[25,1,1,""],failUnlessAlmostEqual:[25,1,1,""],failUnlessEqual:[25,1,1,""],failUnlessRaises:[25,1,1,""],failureException:[25,4,1,""],id:[25,1,1,""],longMessage:[25,4,1,""],maxDiff:[25,4,1,""],run:[25,1,1,""],setUp:[25,1,1,""],setUpClass:[25,1,1,""],shortDescription:[25,1,1,""],skipTest:[25,1,1,""],tearDown:[25,1,1,""],tearDownClass:[25,1,1,""],test_card_creation:[25,1,1,""],test_get_and_set_card:[25,1,1,""],test_readDatagroups:[25,1,1,""]},"virtualsmartcard.tests.CryptoUtils_test":{TestCryptoUtils:[26,2,1,""]},"virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils":{"_addSkip":[26,1,1,""],"_baseAssertEqual":[26,1,1,""],"_classSetupFailed":[26,4,1,""],"_deprecate":[26,1,1,""],"_diffThreshold":[26,4,1,""],"_formatMessage":[26,1,1,""],"_getAssertEqualityFunc":[26,1,1,""],"_truncateMessage":[26,1,1,""],addCleanup:[26,1,1,""],addTypeEqualityFunc:[26,1,1,""],assertAlmostEqual:[26,1,1,""],assertAlmostEquals:[26,1,1,""],assertDictContainsSubset:[26,1,1,""],assertDictEqual:[26,1,1,""],assertEqual:[26,1,1,""],assertEquals:[26,1,1,""],assertFalse:[26,1,1,""],assertGreater:[26,1,1,""],assertGreaterEqual:[26,1,1,""],assertIn:[26,1,1,""],assertIs:[26,1,1,""],assertIsInstance:[26,1,1,""],assertIsNone:[26,1,1,""],assertIsNot:[26,1,1,""],assertIsNotNone:[26,1,1,""],assertItemsEqual:[26,1,1,""],assertLess:[26,1,1,""],assertLessEqual:[26,1,1,""],assertListEqual:[26,1,1,""],assertMultiLineEqual:[26,1,1,""],assertNotAlmostEqual:[26,1,1,""],assertNotAlmostEquals:[26,1,1,""],assertNotEqual:[26,1,1,""],assertNotEquals:[26,1,1,""],assertNotIn:[26,1,1,""],assertNotIsInstance:[26,1,1,""],assertNotRegexpMatches:[26,1,1,""],assertRaises:[26,1,1,""],assertRaisesRegexp:[26,1,1,""],assertRegexpMatches:[26,1,1,""],assertSequenceEqual:[26,1,1,""],assertSetEqual:[26,1,1,""],assertTrue:[26,1,1,""],assertTupleEqual:[26,1,1,""],assert_:[26,1,1,""],countTestCases:[26,1,1,""],debug:[26,1,1,""],defaultTestResult:[26,1,1,""],doCleanups:[26,1,1,""],fail:[26,1,1,""],failIf:[26,1,1,""],failIfAlmostEqual:[26,1,1,""],failIfEqual:[26,1,1,""],failUnless:[26,1,1,""],failUnlessAlmostEqual:[26,1,1,""],failUnlessEqual:[26,1,1,""],failUnlessRaises:[26,1,1,""],failureException:[26,4,1,""],id:[26,1,1,""],longMessage:[26,4,1,""],maxDiff:[26,4,1,""],run:[26,1,1,""],setUp:[26,1,1,""],setUpClass:[26,1,1,""],shortDescription:[26,1,1,""],skipTest:[26,1,1,""],tearDown:[26,1,1,""],tearDownClass:[26,1,1,""],test_padding:[26,1,1,""]},"virtualsmartcard.tests.SmartcardSAM_test":{TestSmartcardSAM:[27,2,1,""]},"virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM":{"_addSkip":[27,1,1,""],"_baseAssertEqual":[27,1,1,""],"_classSetupFailed":[27,4,1,""],"_deprecate":[27,1,1,""],"_diffThreshold":[27,4,1,""],"_formatMessage":[27,1,1,""],"_getAssertEqualityFunc":[27,1,1,""],"_truncateMessage":[27,1,1,""],addCleanup:[27,1,1,""],addTypeEqualityFunc:[27,1,1,""],assertAlmostEqual:[27,1,1,""],assertAlmostEquals:[27,1,1,""],assertDictContainsSubset:[27,1,1,""],assertDictEqual:[27,1,1,""],assertEqual:[27,1,1,""],assertEquals:[27,1,1,""],assertFalse:[27,1,1,""],assertGreater:[27,1,1,""],assertGreaterEqual:[27,1,1,""],assertIn:[27,1,1,""],assertIs:[27,1,1,""],assertIsInstance:[27,1,1,""],assertIsNone:[27,1,1,""],assertIsNot:[27,1,1,""],assertIsNotNone:[27,1,1,""],assertItemsEqual:[27,1,1,""],assertLess:[27,1,1,""],assertLessEqual:[27,1,1,""],assertListEqual:[27,1,1,""],assertMultiLineEqual:[27,1,1,""],assertNotAlmostEqual:[27,1,1,""],assertNotAlmostEquals:[27,1,1,""],assertNotEqual:[27,1,1,""],assertNotEquals:[27,1,1,""],assertNotIn:[27,1,1,""],assertNotIsInstance:[27,1,1,""],assertNotRegexpMatches:[27,1,1,""],assertRaises:[27,1,1,""],assertRaisesRegexp:[27,1,1,""],assertRegexpMatches:[27,1,1,""],assertSequenceEqual:[27,1,1,""],assertSetEqual:[27,1,1,""],assertTrue:[27,1,1,""],assertTupleEqual:[27,1,1,""],assert_:[27,1,1,""],countTestCases:[27,1,1,""],debug:[27,1,1,""],defaultTestResult:[27,1,1,""],doCleanups:[27,1,1,""],fail:[27,1,1,""],failIf:[27,1,1,""],failIfAlmostEqual:[27,1,1,""],failIfEqual:[27,1,1,""],failUnless:[27,1,1,""],failUnlessAlmostEqual:[27,1,1,""],failUnlessEqual:[27,1,1,""],failUnlessRaises:[27,1,1,""],failureException:[27,4,1,""],id:[27,1,1,""],longMessage:[27,4,1,""],maxDiff:[27,4,1,""],run:[27,1,1,""],setUp:[27,1,1,""],setUpClass:[27,1,1,""],shortDescription:[27,1,1,""],skipTest:[27,1,1,""],tearDown:[27,1,1,""],tearDownClass:[27,1,1,""],test_counter_decrement:[27,1,1,""],test_external_authenticate:[27,1,1,""],test_incorrect_pin:[27,1,1,""],test_internal_authenticate:[27,1,1,""],test_security_environment:[27,1,1,""]},"virtualsmartcard.tests.utils_test":{TestUtils:[28,2,1,""]},"virtualsmartcard.tests.utils_test.TestUtils":{"_addSkip":[28,1,1,""],"_baseAssertEqual":[28,1,1,""],"_classSetupFailed":[28,4,1,""],"_deprecate":[28,1,1,""],"_diffThreshold":[28,4,1,""],"_formatMessage":[28,1,1,""],"_getAssertEqualityFunc":[28,1,1,""],"_truncateMessage":[28,1,1,""],addCleanup:[28,1,1,""],addTypeEqualityFunc:[28,1,1,""],assertAlmostEqual:[28,1,1,""],assertAlmostEquals:[28,1,1,""],assertDictContainsSubset:[28,1,1,""],assertDictEqual:[28,1,1,""],assertEqual:[28,1,1,""],assertEquals:[28,1,1,""],assertFalse:[28,1,1,""],assertGreater:[28,1,1,""],assertGreaterEqual:[28,1,1,""],assertIn:[28,1,1,""],assertIs:[28,1,1,""],assertIsInstance:[28,1,1,""],assertIsNone:[28,1,1,""],assertIsNot:[28,1,1,""],assertIsNotNone:[28,1,1,""],assertItemsEqual:[28,1,1,""],assertLess:[28,1,1,""],assertLessEqual:[28,1,1,""],assertListEqual:[28,1,1,""],assertMultiLineEqual:[28,1,1,""],assertNotAlmostEqual:[28,1,1,""],assertNotAlmostEquals:[28,1,1,""],assertNotEqual:[28,1,1,""],assertNotEquals:[28,1,1,""],assertNotIn:[28,1,1,""],assertNotIsInstance:[28,1,1,""],assertNotRegexpMatches:[28,1,1,""],assertRaises:[28,1,1,""],assertRaisesRegexp:[28,1,1,""],assertRegexpMatches:[28,1,1,""],assertSequenceEqual:[28,1,1,""],assertSetEqual:[28,1,1,""],assertTrue:[28,1,1,""],assertTupleEqual:[28,1,1,""],assert_:[28,1,1,""],countTestCases:[28,1,1,""],debug:[28,1,1,""],defaultTestResult:[28,1,1,""],doCleanups:[28,1,1,""],fail:[28,1,1,""],failIf:[28,1,1,""],failIfAlmostEqual:[28,1,1,""],failIfEqual:[28,1,1,""],failUnless:[28,1,1,""],failUnlessAlmostEqual:[28,1,1,""],failUnlessEqual:[28,1,1,""],failUnlessRaises:[28,1,1,""],failureException:[28,4,1,""],id:[28,1,1,""],longMessage:[28,4,1,""],maxDiff:[28,4,1,""],run:[28,1,1,""],setUp:[28,1,1,""],setUpClass:[28,1,1,""],shortDescription:[28,1,1,""],skipTest:[28,1,1,""],tearDown:[28,1,1,""],tearDownClass:[28,1,1,""],test_CAPDU:[28,1,1,""],test_RAPDU:[28,1,1,""]},"virtualsmartcard.utils":{"_make_byte_property":[29,5,1,""],"_unformat_hexdump":[29,5,1,""],APDU:[29,2,1,""],C_APDU:[29,2,1,""],R_APDU:[29,2,1,""],hexdump:[29,5,1,""],inttostring:[29,5,1,""],parse_status:[29,5,1,""],stringtoint:[29,5,1,""]},"virtualsmartcard.utils.APDU":{"_deldata":[29,1,1,""],"_format_parts":[29,1,1,""],"_getdata":[29,1,1,""],"_setbyte":[29,1,1,""],"_setdata":[29,1,1,""],data:[29,4,1,""]},"virtualsmartcard.utils.C_APDU":{"_deldata":[29,1,1,""],"_format_fields":[29,1,1,""],"_format_parts":[29,1,1,""],"_getdata":[29,1,1,""],"_setbyte":[29,1,1,""],"_setdata":[29,1,1,""],"case":[29,1,1,""],CLA:[29,4,1,""],INS:[29,4,1,""],Lc:[29,4,1,""],Le:[29,4,1,""],P1:[29,4,1,""],P2:[29,4,1,""],cla:[29,4,1,""],data:[29,4,1,""],effective_Le:[29,4,1,""],ins:[29,4,1,""],lc:[29,4,1,""],le:[29,4,1,""],p1:[29,4,1,""],p2:[29,4,1,""],parse:[29,1,1,""],render:[29,1,1,""]},"virtualsmartcard.utils.R_APDU":{"_deldata":[29,1,1,""],"_format_fields":[29,1,1,""],"_format_parts":[29,1,1,""],"_getdata":[29,1,1,""],"_getsw":[29,1,1,""],"_setbyte":[29,1,1,""],"_setdata":[29,1,1,""],"_setsw":[29,1,1,""],SW1:[29,4,1,""],SW2:[29,4,1,""],SW:[29,4,1,""],data:[29,4,1,""],parse:[29,1,1,""],render:[29,1,1,""],sw1:[29,4,1,""],sw2:[29,4,1,""],sw:[29,4,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:[29,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","method","Python method"],"2":["py","class","Python class"],"3":["py","staticmethod","Python static method"],"4":["py","attribute","Python attribute"],"5":["py","function","Python function"],"6":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:method","2":"py:class","3":"py:staticmethod","4":"py:attribute","5":"py:function","6":"py:exception"},terms:{"05_":2,"07_":2,"0x00":[7,12,22,23],"0x00000000":6,"0x00000001":6,"0x01":[1,7],"0x02":[1,7],"0x03":1,"0x04":[1,7],"0x0c":[14,21],"0x0d46":1,"0x0e":[14,21],"0x0f":[14,21],"0x10":1,"0x18d1":6,"0x3010":1,"0x40":21,"0x4ee1":6,"0x60":21,"0x80":[12,21,22,23],"0x8c7b":[6,7],"0x8e":[12,21,22,23],"0x9000":1,"0x9a":[1,12,21,22,23],"0x9e":[12,21,22,23],"0xa4":[7,14,21],"0xac":[12,21,22,23],"0xb0":[14,21],"0xb1":[14,21],"0xb2":[14,21],"0xb3":[14,21],"0xbc":[12,21,22,23],"0xca":[14,21],"0xcb":[14,21],"0xd0":[14,21],"0xd1":[14,21],"0xd2":[14,21],"0xd6":[14,21],"0xd7":[14,21],"0xda":[14,21],"0xdb":[14,21],"0xdc":[14,21],"0xdd":[14,21],"0xe0":[14,21],"0xe2":[14,21],"0xe4":[14,21],"0xff":[1,7,17,21,23],"0xxx":7,"27c3":2,"27th":2,"7_3":2,"7_win32":6,"\u00ecnfo":6,"__getrecord":14,"__init__":7,"__repr__":29,"__str__":29,"_addskip":[25,26,27,28],"_baseassertequ":[25,26,27,28],"_cardgenerator__generate_cryptoflex":9,"_cardgenerator__generate_epass":9,"_cardgenerator__generate_iso_card":9,"_cardgenerator__generate_npa":9,"_classsetupfail":[25,26,27,28],"_controlreferencetemplate__replace_tag":[12,23],"_controlreferencetemplate__set_algo":[12,23],"_controlreferencetemplate__set_iv":[12,23],"_controlreferencetemplate__set_kei":[12,23],"_deldata":29,"_deprec":[25,26,27,28],"_diffthreshold":[25,26,27,28],"_format_field":29,"_format_part":29,"_formatmessag":[25,26,27,28],"_get_referenced_kei":[15,21,22,23],"_getassertequalityfunc":[25,26,27,28],"_getdata":29,"_getsw":29,"_handlertestos__output_from_l":19,"_make_byte_properti":29,"_makesalt":11,"_npa_se__eac_ca":23,"_npa_se__eac_pace_step1":23,"_npa_se__eac_pace_step2":23,"_npa_se__eac_pace_step3":23,"_npa_se__eac_pace_step4":23,"_npa_se__pack_general_authent":23,"_npa_se__unpack_general_authent":23,"_passportsam__computekei":22,"_recordstructureef__getrecord":14,"_recordstructureef__getrecordsbyidentifi":14,"_recordstructureef__getrecordsbynumb":14,"_selectfil":[14,21],"_set_s":[12,21,22,23],"_setbyt":29,"_setdata":29,"_setsw":29,"_truncatemessag":[25,26,27,28],"_unformat_hexdump":29,"_virtualicc__recvfromvpicc":17,"_virtualicc__sendtovpicc":17,"byte":[7,12,14,15,17,21,22,23,29],"case":[1,4,6,7,21,25,26,27,28,29],"class":[7,9,12,14,15,17,19,20,21,22,23,25,26,27,28,29],"default":[1,4,6,25,26,27,28],"enum":4,"f\u00fcr":2,"function":[2,3,7,11,14,15,17,21,22,23,25,26,27,28,29],"import":7,"int":[1,4],"long":[4,7,14,21],"m\u00fcller":2,"new":[1,2,3,6,7,9,12,14,21,22,23],"null":6,"pl\u00f6tz":6,"public":[2,6,12,15,21,22,23],"return":[0,7,11,12,14,15,16,17,21,22,23,25,26,27,28,29],"short":[14,29],"static":[14,17,21,22,23],"switch":[1,6,12,21,22,23],"throw":7,"true":[14,21,25,26,27,28,29],"try":[2,7],"universit\u00e4t":2,"while":7,a000000397425446590201:0,a000000527210101:0,abl:[6,9],about:[6,7],abov:6,academictitl:6,acardemul:[0,4],accept:[25,26,27,28],access:[0,1,3,4,5,6,12,15,17,21,22,23],accord:[7,12,14,17,21,22,23],accordingli:6,act:[6,7],activ:4,actual:[4,5,7,20,25,26,27,28],actual_seq:[25,26,27,28],add:[1,4,7,12,23,25,26,27,28],add_data:7,addcleanup:[25,26,27,28],addit:4,address:6,addtypeequalityfunc:[25,26,27,28],adjust:[12,22,23],adress:29,af_inet:7,after:[25,26,27,28],against:[4,5,6],agreement:[12,21,22,23],aid:4,aid_list:4,algo:11,algorithm:[11,12,15,21,22,23],alia:[25,26,27,28],alioth:[1,4,6,19],all:[4,5,6,7,12,14,15,16,21,22,23,25,26,27,28],allow:[0,4,5,6,25,26,27,28],almost:[25,26,27,28],alreadi:[12,23],also:[0,1,4,6,7,9,14,21],altern:[1,2,4,6],although:6,anchor:[6,12,21,22],andrea:2,angriff:2,ani:[0,1,4,5,6,7,15,21,22,23],annex:22,anoth:1,answer:[17,21,23],anywai:[6,22],apart:2,apdu:[0,1,4,7,12,14,15,17,20,21,22,23,29],api:[6,7],app:[0,4,5,6,7],appear:1,append:[11,12,14,21,23],append_pad:11,appendrecord:[14,21],appl:6,applet:0,applic:[0,1,4,5,6,17],applicationidentifi:[14,21],appropri:[12,21,22,23],apt:1,arg:[7,13,14,17,21,23,25,26,27,28,29],argument:[6,25,26,27,28],argz:[14,21],around:4,arrai:6,articl:6,asctim:7,assert:[25,26,27,28],assert_:[25,26,27,28],assertalmostequ:[25,26,27,28],assertdictcontainssubset:[25,26,27,28],assertdictequ:[25,26,27,28],assertequ:[25,26,27,28],assertfals:[25,26,27,28],assertgreat:[25,26,27,28],assertgreaterequ:[25,26,27,28],asserti:[25,26,27,28],assertin:[25,26,27,28],assertionerror:[25,26,27,28],assertisinst:[25,26,27,28],assertisnon:[25,26,27,28],assertisnot:[25,26,27,28],assertisnotnon:[25,26,27,28],assertitemsequ:[25,26,27,28],assertless:[25,26,27,28],assertlessequ:[25,26,27,28],assertlistequ:[25,26,27,28],assertmultilineequ:[25,26,27,28],assertnotalmostequ:[25,26,27,28],assertnotequ:[25,26,27,28],assertnotin:[25,26,27,28],assertnotisinst:[25,26,27,28],assertnotregexpmatch:[25,26,27,28],assertrais:[25,26,27,28],assertraisesregexp:[25,26,27,28],assertregexpmatch:[25,26,27,28],assertsequenceequ:[25,26,27,28],assertsetequ:[25,26,27,28],asserttru:[25,26,27,28],asserttupleequ:[25,26,27,28],assign:[14,29],assignlogicalchannel:[17,21,23],associ:[12,22,23],assum:7,asym:12,atexit:7,atr:[7,17,21,23],attach:[0,5],attack:[4,5,7,20],attempt:6,attribut:[14,21,25,26,27,28,29],auf:2,authent:[12,15,21,22,23],authenticate_head:[12,21,22,23],authentisierung:2,autodetect:[1,4],automat:[6,17,21,23,25,26,27,28],autoreconf:[1,4,6],autotool:6,auxiliari:[1,4,6],avail:[0,1,2,4,5,6,7,14,21],avoid:7,bac:6,back:[4,7,17,20],backend:4,bar:5,base:[0,1,4,9,12,13,14,15,17,19,20,21,22,23,25,26,27,28,29],basi:[25,26,27,28],basic:[17,22],basicconfig:7,basiert:2,been:[3,7,25,26,27,28],befor:[7,25,26,27,28],begin:[14,21],below:[4,6],ber:[14,21],berlin:2,bertlv:16,bertlv_data:[14,21],bertlv_pack:16,bertlv_unpack:16,besitz:2,best:[4,7],better:7,between:[0,1,6,17,21,23,25,26,27,28],big:[7,12,21,22,23],bin:6,binari:[6,14,21,29],birthnam:6,bit:[11,14,21],bitmask:[12,21,22,23],bitstr:[17,21,23],bix:6,bixvread:6,bixvreaderinstal:6,bleed:[1,4,6],blob:0,block:[7,11,15,21,22],blocklen:11,bndl:6,bool:[14,17,21,23],both:[1,25,26,27,28],box:1,bring:6,brows:[0,2,5],bsi:1,buffer:7,bug:[1,4,6,7],build:[0,1,4,5],building_gadget_usb_modul:1,built:[0,4,5,6],bund:1,bundl:6,bz2:1,c_apdu:29,ca_kei:[6,7,17,23],calcul:[4,11,17,21,22,23],calculate_mac:11,call:[7,14,25,26,27,28],callabl:[25,26,27,28],callable_obj:[25,26,27,28],callableobj:[25,26,27,28],camera:[0,5],can:[0,1,2,4,5,6,7,14,20,21,23,25,26,27,28],capabl:[14,17,21,23],capdu:[12,15,17,21,22,23],card_typ:[7,9,17,25],cardaccess:6,cardconnectionexcept:7,cardgener:[7,8],cardgenerator_test:[7,8,24],cardnumb:15,cardsecret:15,cardsecur:6,cardtyp:7,caught:[25,26,27,28],cbc:11,ccc:2,cct:12,cert:6,certif:[6,12,21,22],certifc:6,cfbundledevelopmentregion:6,cfbundleexecut:6,cfbundleinfodictionaryvers:6,cfbundlenam:6,cfbundlepackagetyp:6,cfbundlesignatur:6,cfbundlevers:6,challeng:[15,21,22,23],chang:[1,4,6,15,21,22,23],change_reference_data:[15,21,22,23],channelid:6,chao:2,charact:[17,21,23],check:[1,6,7,15,21,22,23,25,26,27,28],checksum:[11,12,21,22,23],chip:6,chipkartenles:2,choic:5,choos:[0,4,5,6],chosen:6,chr:7,chv:[15,21,22,23],cipher:[11,15,21,22,23],cipherspec:11,citi:6,cla:[1,29],cleanup:[7,20,25,26,27,28],click:6,client:1,clone:[0,1,2,4,5,6],close:[7,20],club:2,code:[0,1,4,5,6,7,12,14,16,21,22,23,29],codeproject:6,collect:[25,26,27,28],com:[0,1,2,3,4,5,6,7],combin:[1,4,12,23],come:7,command:[0,1,4,6,7,12,14,15,17,19,20,21,22,23,29],commandchaing:[17,21,23],commun:[0,2,4,5,6,7,17],communityid:6,compar:[21,25,26,27,28],comparison:[25,26,27,28],compat:1,compil:[0,1,4,5,6],complet:[4,6,7,25,26,27,28],complex:7,compon:1,comput:[0,2,5,6,11,12,21,22,23],compute_cryptographic_checksum:[12,21,22,23],compute_digital_signatur:[12,21,22,23],concern:[2,4,5],conf:[6,7],config:[4,5,6,12,23],configur:[0,1,4,5],congress:2,connect:[0,4,5,6,7,17,20],connector:[4,6],connecttoport:[7,17],consecut:29,constantdefinit:[7,8],contactless:0,contain:[6,12,14,15,21,22,23,25,26,27,28],content:[7,9,12,14,21,23,29],context:[7,25,26,27,28],continu:3,contribut:[0,1,4,5,6],control:[12,14,21,22,23],controlreferencetempl:[12,23],convent:[17,21,23],copyright:6,core:1,correct:[7,14,15,21,22],correctli:[15,21,23],correspond:[7,15],count:[25,26,27,28],counter:[11,15,21,22,25,26,27,28],counterpart:1,countri:6,counttestcas:[25,26,27,28],cover:[4,6],craft:1,creat:[1,2,6],createfil:[14,21],cross:4,crt:[12,22,23],crtl:17,crypt:11,crypto_checksum:11,cryptoflex:[6,7,8,9,18],cryptoflexgeneratortest:25,cryptoflexmf:[7,21],cryptoflexo:[7,21],cryptoflexs:21,cryptoflexsam:21,cryptograph:[11,12,21,22,23],cryptoutil:[7,8],cryptoutils_test:[7,8,24],current:[0,2,4,6,9,11,12,14,15,21,22,23],currentdf:[14,21],currentef:[14,21],custom:1,custom_url:7,cvca:[6,7,17,23],cyanogenmod:[0,5],cyberflex:[6,11],cycl:[14,21],cyclic:14,d2760001240102000000000000010000:0,daemon:6,data:[0,1,4,5,6,7,11,12,14,15,16,17,21,22,23,25,26,27,28,29],datacod:14,datagroup:9,datagroupnam:6,datagroupvalu:6,datalist:[14,16],dataobjecthandlingdecodeencapsul:[14,21],dataobjecthandlingdecodeplain:[14,21],dataset:[6,7],datasetfil:[6,7,9,17],datatyp:[25,26,27,28],dataunitsdecodeencapsul:[14,21],dataunitsdecodeplain:[14,21],datefmt:7,dateofbirth:6,dateofexpiri:6,dcb:[14,21],debian:[1,4,6,19],debug:[6,25,26,27,28],decim:[25,26,27,28],deciph:[12,21,22,23],decipher:[12,21,22,23],decive_unit:6,decod:[14,21],decodediscretionarydataobject:16,decodeextendedheaderlist:16,decodeheaderlist:16,decodeoffsetdataobject:16,decodetaglist:16,deconstruct:[25,26,27,28],decor:14,decrement:[15,21,22],decrypt:[11,14,15,21,22,23],dedic:14,deem:[25,26,27,28],def:7,default_s:[15,23],default_uid:1,defaulttestresult:[25,26,27,28],defin:[1,15,22],deleg:[0,6],deletefil:[14,21],delta:[25,26,27,28],den:2,depend:[0,1,4,5,6,11,14,21,22,29],deploi:[0,5],deriv:[7,22],derive_kei:22,des3:11,describ:6,descript:[25,26,27,28],descriptor:[14,21],design:7,despit:4,destroypacechannel:1,detail:[6,7,25,26,27,28],detect:5,determin:[25,26,27,28],dev:[1,6],develop:[0,3,4,5],devic:[1,6],devicenam:6,devices_compatibility_matrix:4,devmgmt:6,dfname:[14,21],dfselectionbyapplication_implicit:[14,21],dfselectionbyfid:[14,21],dfselectionbyfulldfnam:[14,21],dfselectionbypartialdfnam:[14,21],dfselectionbypath:[14,21],dg12:6,dg14:6,dg15:6,dg16:6,dg21:6,dict:6,dictionari:[12,23],die:2,die_gesamte_technik_ist_sich:2,diff:[25,26,27,28],differ:[2,6,7,9,11,12,22,23,25,26,27,28],digit:[12,21,22,23,25,26,27,28],direct:[17,21,23],directconvent:[17,21,23],directli:[4,6],directori:[1,6,7],disabl:6,disable_check:[7,17,23],disconnect:7,discuss:[4,5],disk:[7,9],dispatch:[15,17],distanc:4,distribut:4,dlitz:6,do_encrypt:11,do_someth:[25,26,27,28],doc:[6,14],docleanup:[25,26,27,28],docstr:[14,25,26,27,28],doctyp:6,documenttyp:6,doe:[4,6,7,22],doi:2,dominik:[2,4],done:[4,7],doubl:6,down:[7,17,19,21,23],driver:[1,5,6,19],droid:[0,5],dsa:[15,21,22,23],dst:12,dtd:6,ducktyp:[25,26,27,28],dummy_hcd:1,dump:29,dylib:6,eac:[6,23],eac_step:23,each:[14,25,26,27,28],earlier:6,echo:1,edg:[1,4,6],edit:7,editor:2,ef_cardaccess:[6,7,17,23],ef_cardsecur:[6,7,17,23],effective_l:29,efstructure_cyclic_nofurtherinfo:7,efstructure_linear_fixed_:7,efstructure_linear_variable_:7,efstructure_transpar:7,eid:2,eid_pin:23,einem:2,either:[0,12,14,21,22,23],electron:[0,3,6],element:[6,25,26,27,28],elementari:14,elif:7,els:7,email:6,enabl:[1,2,4,6],enciph:[12,21,22,23],encipher:[12,21,22,23],encod:[6,7,12,23],encodebertlvdatalist:16,encodedataoffsetobject:16,encodediscretionarydataobject:16,encodefilecontrolparamet:[14,21],encrypt:[7,9,11,14,15,21,22,23],end:[12,14,21,22,23],endian:7,enforc:[25,26,27,28],engin:2,english:6,ensur:6,enter:[15,21,22],entir:7,entri:1,environ:[4,12,15,21,22,23],epass:[6,7,8,18],epass_s:22,epassport:22,equal:[14,15,21,22,25,26,27,28],equival:[25,26,27,28],eras:[12,14,15,21,22,23],erase_s:[15,21,22,23],erasebinari:[14,21],erasebinaryencapsul:[14,21],erasebinaryplain:[14,21],erasefrom:14,eraserecord:[14,21],eraseto:14,erik:0,eriknellessen:0,err_incorrectparamet:7,err_wronglength:7,error:[1,7,14,21,25,26,27,28],error_cod:[25,26,27,28],erweiterung:2,esign:6,esign_ca_cert:[6,7,17,23],esign_cert:[6,7,17,23],esign_kei:[7,17,23],especi:[1,4,5],establish:[5,6],establishpacechannel:1,establishpacechannelinput:1,establishpacechanneloutput:1,etc:[6,7],even:[7,14,21,25,26,27,28],everi:6,exactli:[25,26,27,28],exampl:[1,4,6],excclass:[25,26,27,28],except:[7,13,25,26,27,28],execut:[6,7,17,19,20,21,23,25,26,27,28],exercis:28,exist:[0,4,7],exit:[1,4,6,7],expect:[7,25,26,27,28],expected_except:[25,26,27,28],expected_regexp:[25,26,27,28],expected_seq:[25,26,27,28],explain:4,explicit:[25,26,27,28],explor:6,expon:21,expr1:[25,26,27,28],expr2:[25,26,27,28],expr:[25,26,27,28],express:[25,26,27,28],extend:[2,6,7],extended_length:17,extendedl:[17,21,23],extern:[6,12,21,22,23],external_authent:[15,21,22,23],extra:[25,26,27,28],extra_fci_data:14,f000000001:0,f276a288bcfba69d34f31001:0,fabio:6,fail:[7,25,26,27,28],failif:[25,26,27,28],failifalmostequ:[25,26,27,28],failifequ:[25,26,27,28],failunless:[25,26,27,28],failunlessalmostequ:[25,26,27,28],failunlessequ:[25,26,27,28],failunlessrais:[25,26,27,28],failur:[25,26,27,28],failureexcept:[25,26,27,28],fals:[6,7,14,16,17,21,23,25,26,27,28,29],familynam:6,far:6,fci:[14,21],fdb:7,fdid:[0,5],featur:2,feature_execute_pac:1,feature_modify_pin_direct:1,feature_verify_pin_direct:1,feedback:[0,1,4,5,6],fetch:[0,5,7],ff557573:6,fid:[7,14,21],field:[12,21,22,23,29],file:[0,1,4,5,6,7,9,14,15,17,21,23],filedescriptor:[7,14,21],filenam:1,filesystem:[9,15,21,22,23],fill:9,find:[1,4,6,7,16],firewal:7,first:[6,7,14,21,25,26,27,28],firstsft:[14,21],firstsoftwar:[14,21],fix:14,fixtur:[25,26,27,28],fmd:[14,21],focu:6,follow:[0,1,2,4,5,6,7,14,21],foreground:4,form:[4,9,11,15,21,22,23],format:7,formatresult:[7,17,21,23],forwar:4,forward:[1,7,17,20],forwared:1,foss:2,found:[7,25,26,27,28],fragment:1,frame:17,framework:6,frank:[1,2,4],frankmorgn:[0,1,2,3,4,5,6],fraunhof:2,friendlynam:6,from:[0,2,4,5,6,7,9,12,14,15,17,20,21,22,23,25,26,27,28],fsdecrypt:[15,21,22,23],fsencrypt:[15,21,22,23],fukuchi:6,full:[4,5,29],futur:[15,21,22,23],g_ether:1,gadget:1,gener:[0,4,5,6,7,9,11,12,14,15,21,22,23,25,26,27,28,29],general_authent:23,generate_public_key_pair:[12,15,21,22,23],generatecard:9,german:[0,3,4,5,6],gertrud:6,gesamt:2,get:[1,4,6,7,9,14,21,25,26,27,28],get_card_numb:[15,21,22,23],get_challeng:[15,21,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,21,23],getcard:[7,9],getdata:[14,21],getdataencapsul:[14,21],getdataplain:[14,21],getfile_byrefdataobj:14,getpath:[14,21],getreaderpacecap:1,getrespons:[17,21,23],getsocknam:7,getstatu:29,gg487509:1,gid:0,gidsapplet:0,giovanni:2,git:[0,1,2,4,5,6],github:[0,1,2,3,4,5,6],give:[6,7],given:[4,7,12,14,15,16,17,21,22,23,25,26,27,28],givennam:6,global:[12,15,21,22,23],gmail:1,gnu:[1,4,6],googl:4,gpl:[0,1,4,5,6],group:[6,7],guess:6,guid:2,handi:2,handl:[7,14,21],handler:17,handler_test:[6,7,19],handlertest:[7,8,18],handlertesto:[7,19],hardwar:[0,1,4,5,6],hasfixedrecords:14,hash:[11,12,21,22,23],hashmap:15,hashmethod:11,hassimpletlv:14,have:[0,1,2,4,5,6,7,25,26,27,28],hce:0,header:[1,4,12,21,22,23],header_authent:[15,21,22,23],heidelberg:2,hello:0,helloworldapplet:0,help:[1,4,6],henryk:6,here:[1,2,4,6,7],hexdump:29,histchar:[17,21,23],histor:[14,17,21,23],hmac:11,holder:6,home:3,honor:14,honour:[25,26,27,28],hook:[7,25,26,27,28],host:[0,1,4,5,6,7,17],hostnam:[4,6,7],how:[1,4,7],html:[0,1,2,5,6,19],http:[0,1,2,3,4,5,6,7,19],human:[25,26,27,28],humboldt:2,icao:[9,11,22],icc:22,ident:[0,3,6],identifi:[0,4,14,15,21,22,23],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:[25,26,27,28],impact:[4,5],implement:[0,1,6],implicitli:7,importerror:7,inact:6,includ:[0,2,4,6,7,12,15,21,22,23,25,26,27,28],include_fil:16,incom:[4,6],incomplet:6,indent:[14,29],index:[4,14,15,21,25,26,27,28],index_curr:[14,21],index_htm:1,indic:[12,21,22,23],info:[1,6,7],infoplist:6,inform:[2,12,14,15,21,22,23],informat:2,informatik:2,informationstechnologi:2,ini:6,init:[0,1,6],initi:[0,1,6,7,11,12,14,22,23],inpterpret:7,input:11,ins2handl:[17,21,23],insert:4,insight:7,insmod:1,inspect:[25,26,27,28],instanc:[14,16],instead:[6,25,26,27,28,29],institut:2,instruct:[14,21],integ:[14,21],integr:[3,6],interact:9,interfac:[0,1],intermediari:1,intern:[12,15,21,22,23],internal_authent:[15,21,22,23],internet:6,interrupt:1,inttostr:[7,29],invalid:[6,7,15,21,22],invers:[17,21,23],invok:[12,21,22,23,25,26,27,28],involv:14,ioanni:2,iscycl:14,isequ:14,isinst:[25,26,27,28],iso7816:[6,7,25],iso7816generatortest:25,iso7816o:[7,17,21,23],iso:[0,4,6],isoapplet:0,issimpletlv:[14,21],issu:[1,4,6],issuingst:6,ist:2,item:[14,25,26,27,28],iter:[25,26,27,28],itself:7,java:0,jcardsim:0,jen:2,join:7,jump:6,just:[17,25,26,27,28],kdir:1,keep:[25,26,27,28],kei:[6,7,11,12,15,21,22,23],kernel:1,keycard:0,keyref_is_can:23,keyref_is_mrz:23,keyref_is_pin:23,keyref_is_puk:23,keytyp:[15,21,22,23],keyword:[25,26,27,28],killal:6,kind:[0,1,4,5,6,12,21,22],kit:6,kitkat:[0,5],know:[6,7],knowledg:7,krontiri:2,kwarg:[25,26,27,28,29],last:[11,14,21],lastcommandoffcut:7,lastcommandsw:7,later:[4,6,7,21],latest:[1,2,4,6],layer:6,lead:6,lectur:2,len:[7,17,21,23],length:[7,11,12,14,16,21,23,25,26,27,28,29],let:7,level:7,levelnam:7,lian:2,lib:[1,4,6],libccid:1,libeac:6,libexec:6,libifdvpcd:6,libopensc:1,libpath:6,libpcsclit:6,libqrencod:6,librari:2,licel:0,licens:[0,1,4,5,6],life:[14,21],lifecycl:[14,21],lifo:[25,26,27,28],like:[1,4,6],line:[1,6,25,26,27,28,29],linelen:29,link:6,linuxtag:2,list1:[25,26,27,28],list2:[25,26,27,28],list:[1,4,6,7,14,16,21,25,26,27,28],listen:4,listread:7,lite:[4,6,19],littl:7,load:[1,6,7],local:[1,6],local_ip:7,localhost:6,locat:[1,2,4],log:7,logginglevel:[7,17],logic:14,longmessag:[25,26,27,28],look:[0,1,2,4,6,7,14],loop:17,lopensc:1,lost:7,machin:[1,6,22],maco:6,magic:7,mai:[0,4,6,11,12,15,21,22,23],mail:6,main:[0,4,6,7,17],maintain:17,make:[1,4,6,29],make_properti:14,makeatr:[17,21,23],makefil:1,makefirstsoftwarefunctiont:[14,21],makesecondsoftwarefunctiont:[14,21],makethirdsoftwarefunctiont:[17,21,23],manag:[6,7,25,26,27,28],manage_security_environ:[12,15,21,22,23],mani:16,manipul:[12,21,22,23],manual:[0,5],map:[7,21],mass:6,master:[0,2,14,15,17,21,23],match:[4,6,14,25,26,27,28],max:[11,17,21,23],maxdiff:[25,26,27,28],maximum:[14,15,21,22],maximumchannel:[17,21,23],maxl:[7,21,23],maxrecords:[7,14],maxsiz:14,mayb:1,mean:[6,7,11,12,15,17,21,22,23,25,26,27,28],measur:[25,26,27,28],mechan:[12,21,22,23],media:2,member:[25,26,27,28],memori:[15,21,22,23],messag:[6,7,11,12,13,15,17,21,22,23,25,26,27,28],meta:29,method:[9,12,15,21,22,23,25,26,27,28],methodnam:[25,26,27,28],microsoft:[1,4,6],middlewar:1,might:[7,15,21,22,23],min:7,mingw:4,miss:[1,4,6],mitm:[7,20],mkdir:1,mmc:6,mmo11:2,mo10:2,mobil:2,mobilen:2,mode:[1,4,5,6,7,11,12,15],modern:[1,4],modif:[1,7],modifi:[1,4,7,12,23],modprob:1,modul:[1,4,6,7,8],momr12:2,mor12:2,more:[0,1,4,5,6,7,12,22,23,25,26,27,28],morgner:[1,2,4],most:[1,4,7,16,25,26,27,28],mostli:7,mount:1,mous:6,mrtd:[6,22],mrz:[9,23],msc:6,msdn:[1,6],mse:12,msg:[7,17,19,20,21,23,25,26,27,28],msi:6,multi:[25,26,27,28],multipl:[1,6,7],must:[1,4,5,6,7,9,11,12,14,21,22,23,25,26,27,28],mutual_authent:[15,21,22,23],mutual_challeng:[15,21,22,23],name:[4,6,14,21,29],nation:6,nativ:4,necessari:4,need:[0,1,4,5,6,7,15,21,22,23,25,26,27,28],neither:[14,21],nellesson:0,net:[0,6],network:[5,7],neuen:2,neuer:3,new_fil:7,newer:[0,5],newli:14,newlist:14,newtlvlist:[14,21],newvalu:[14,16],next:[14,21,23],nfc:[0,2,4,5,6,7],nice:29,nicer:[25,26,27,28],nobodi:22,nofurtherinfo:7,none:[7,9,11,14,15,16,17,21,22,23,25,26,27,28,29],nor:[14,21],normal:[7,21,25,26,27,28],normal_rest:7,noth:[12,21,22,23],notif:1,now:[1,4,6,15,21,22,23],npa:[0,2],npa_at_crt:23,npa_s:23,npa_sam:23,npao:[7,23],num_id:14,num_result:16,number:[1,4,6,7,14,15,21,22,23,25,26,27,28],numread:6,oath:0,obj:[1,25,26,27,28],object:[7,9,12,14,15,17,21,22,23,25,26,27,28,29],occur:[14,21],odd:[14,21],oep10:2,oepen:[2,4],off:[1,7],offer:2,offset:[14,16,21,29],old:[2,14],older:[1,2,4,6],om11:2,omit:[17,21,23,25,26,27,28],onetimewrit:14,onli:[1,4,7,11,14,21,22,25,26,27,28],open:[0,5,6,7,17],openmoko:[1,4,6],openpac:6,openpcd:4,openpgp:0,openpicc:4,openport:[7,17],opensc_lib:1,oper:[4,11,12,14,21,22,23,25,26,27,28],operation_on_str:11,optim:[25,26,27,28],option:[1,4,6,9,11,17,21,23,25,26,27,28],ord:7,order:[1,7,12,14,15,21,22,23,25,26,27,28],org:[0,1,4,5,6,19],original_func:[25,26,27,28],other:[1,5,6],otherwis:[4,12,14,21,23,25,26,27,28],ottavi:6,our:[0,1,2,3,4,5,6,7,29],out:[1,7],output:6,over:[4,5,6,7],overview:[6,7],overwrit:[7,29],own:[0,6,25,26,27,28],pace:[0,1,6],pace_can:23,pace_mrz:23,pace_pin:23,pace_puk:23,pacecap:1,pack:16,packag:7,pad:[11,12,21,22],padding_class:11,pair:[12,22,23],parallel:6,param:14,paramet:[11,12,14,15,17,21,22,23,25,26,27,28],parent:[7,14,21],pariti:22,pars:[7,12,15,21,22,23,29],parse_se_config:[12,23],parse_sm_capdu:[12,15,21,22,23],parse_statu:29,part:[2,6,14],partial:[14,21],pass:[7,17],passport:[0,6,9,11,22],passportsam:22,patch:1,path:[7,9,14,15,21],pattern:[25,26,27,28],pbkdf2:6,pc_to_rdr_secur:1,pc_to_rdr_xfrblock:1,pcd:[6,7,17],pcsc:[4,6],pcsc_scan:6,pcscd:[6,7],pcsclite:[1,4,6,19],pdf:2,perform:[1,12,17,19,21,22,23],perform_security_oper:[12,15,21,22,23],period:6,permiss:[0,5],persist:9,personalauswei:[2,3],peter:2,pezorform_security_oper:21,photo:9,php:4,physic:[7,20],piec:14,pil:6,pin:[0,1,15,21,22],pipe:[1,6],pkc:6,pkg:4,pkg_config_path:4,pkgconfig:4,pki:22,place:[6,25,26,27,28],placeofbirth:6,plain:[12,15,21,22,23],platform:[0,1,4,5,6],pleas:[0,1,4,5,6],plist:6,plu:[25,26,27,28],plug:6,point:14,pointer:14,port:[4,6,7,17],posess:[15,22,23],possibl:[1,4,6],power:[7,17,19,21,23],powerdown:[7,17,19,20,21,23],powerup:[7,17,19,20,21,23],prefix:[1,4,6],prepend:[11,14,21],present:1,press:17,pretend:6,pretti:7,prettyprint_anyth:14,previou:[14,21],previous:[7,12,22,23],print:[1,4,5,6,7,17],print_ascii:7,privaci:2,privat:[6,12,15,21,22,23],probabl:[1,4,6],problem:6,process:[0,4],produc:17,product:[1,6],program:[2,6,7],project:[0,1,2,4,5,6],prompt:9,prop:[14,29],properti:[14,29],propertylist:6,proprietari:[1,6,14],protect:[0,6,12,15,21,22,23],protect_respons:[12,21,22,23],protect_result:[15,21,22,23],protocol:[0,6,7,17,21,22,23],prove:[15,22,23],provid:[6,7,12,22,23,25,26,27,28],pseudo:1,pseudorandom:11,publikationen:1,publish:6,puk:[15,21,22,23],purpos:[4,25,26,27,28],put:[14,21],putdata:[14,21],putdataencapsul:[14,21],putdataplain:[14,21],pwd:1,pwendland:0,pycrypto:6,pypi:6,pyreadlin:6,pyscard:[6,7],pythonwar:6,qes_pin:23,qrcode:7,qrencod:6,qrserver:7,quit:7,r_apdu:[7,29],rais:[7,14,21,25,26,27,28],random:[1,15,21,22],randomli:6,rapdu:[7,17],raw:[12,21,22,23],rdr_to_pc_datablock:1,read:[6,7,9,14,21,22],readabl:[22,25,26,27,28],readbinari:[14,21],readbinaryencapsul:[14,21],readbinaryplain:[14,21],readdatagroup:[7,9],reader0:6,reader1:6,reader2:6,reader:0,readernum:[7,17,20],readlin:6,readrecord:[14,21],readrecordencapsul:[14,21],readrecordplain:[14,21],real:[1,4,6,7,20],realiz:4,reason:[25,26,27,28],recalculate_length:16,receiv:[4,7,17,20],recent:1,recogn:7,reconnect:7,record:[7,14],recordhandlingdecod:[14,21],recordidentifiersupport:[14,21],recordnumbersupport:[14,21],recordpoint:14,recordstructureef:[7,14],recurs:[6,14],redlich:2,ref:14,refdataobj:14,referenc:[15,21,22,23],regard:[14,21],regexp:[25,26,27,28],regist:[4,6,7,25,26,27,28],regular:[25,26,27,28],relai:[0,2],relayo:[7,20],releas:[1,2,4,6],religiousartisticnam:6,remot:[0,2,4],remotesmartcardread:[0,5],remov:[12,14,21,22],render:[7,29],replac:[6,12,14,15,21,22,23],report:[1,4,6],repositori:[0,1,2,4,5,6],repres:29,represent:14,request:[2,6,7,14],requestedtl:[14,21],requir:[0,1,5,6,7,22],research:2,reset:[7,14,15,17,19,20,21,22,23],reset_retry_count:23,resetrecordpoint:14,residencepermit1:6,residencepermit2:6,resp_data:22,respect:7,respons:[0,1,4,6,7,9,12,14,15,17,20,21,22,23,29],respsons:17,rest:7,restart:6,restor:[12,15,21,22,23],restore_s:[15,21,22,23],result:[7,12,14,16,17,21,22,23,25,26,27,28],retri:[15,21,22],retriev:[15,21,22,23],revers:[6,7],rfid:4,rfu:[15,21,22,23],right:[15,21,22,23],root:6,round:[25,26,27,28],routin:6,rpc_type:6,rsa:[15,21,22,23],run:[0,1,4,5],runtest:[25,26,27,28],runtim:0,russello:2,sai:6,said:7,salt:11,sam:[7,9,12,14,15,17,21,22,23],same:[6,7,25,26,27,28],sampl:0,sar:2,save:6,scan:[0,5,7],scanner:5,scardcontrol:1,scardtransmit:1,schmidt:2,scienc:2,script:6,sdk:[0,5],search:[14,21],searchbinaryencapsul:[14,21],searchbinaryplain:[14,21],second:[14,21,25,26,27,28],secondsft:[14,21],secondsoftwar:[14,21],secret:[11,15,21,22,23],section:[4,7],secur:[1,2,6,7,12,15,17,21,22,23],security_environ:[12,15,21,22,23],see:[1,4,6,7,14,17,19,21,23],seed:22,seekabl:[7,17,21,23],seid:[12,15,21,22,23],select:[0,4,5,7,11,14,17,21,23],selectfil:[14,21],self:[7,25,26,27,28],send:[4,7,11,12,17,20,21,22],sendcommandapdu:7,sent:[4,7],seper:6,seq1:[25,26,27,28],seq2:[25,26,27,28],seq_typ:[25,26,27,28],sequenc:[11,22,25,26,27,28],sequenti:14,serial:[1,6],server_sock:7,servic:6,session:7,session_kei:11,set1:[25,26,27,28],set2:[25,26,27,28],set:[4,6,9,12,14,17,21,22,23,25,26,27,28],set_asym_algorithm:[15,21,22,23],set_mf:[15,21,22,23],setcard:9,setter:[15,21,22,23],settimeout:7,setup:[25,26,27,28],setupclass:[25,26,27,28],seutil:[7,8],sever:[1,4,6],sex:6,shall:[6,12,21,22,23],shell:6,shiguo:2,ship:[1,4,6],shortdescript:[25,26,27,28],shortfid:14,shortfidsupport:[14,21],should:[1,4,6,7,12,14,21,22,23,25,26,27,28],show:6,sicher:2,sicherheitsanalys:2,sig:17,sigint:7,sigkil:6,sign:[6,12,21,22,23],signal:[7,17],signalhandl:[7,17],signatur:[6,12,21,22,23],signfic:[25,26,27,28],signific:[25,26,27,28],simpl:[0,7,14,21],simpletlv:16,simpletlv_data:[14,21],simpletlv_pack:16,simpletlv_unpack:16,simpli:[6,7],simul:0,sinc:[1,6],sit:2,six:12,size:[11,14,21],skip:[25,26,27,28],skiptest:[25,26,27,28],sln:6,slot:6,sm_header:[12,21,22,23],smartcard:[2,5,6,7,14,17,20],smartcardfilesystem:[7,8],smartcardo:[7,17,19,20,21,23],smartcardsam:[7,8],smartcardsam_test:[7,8,24],smartcardservic:6,smartphon:[0,2,5],social:2,sock:7,sock_dgram:7,socket:[0,6,7,17],softwar:[4,5,6,7,14,17,21,23],solut:6,some:[1,2,7],someexcept:[25,26,27,28],someth:6,sourc:[0,1,5,7],sourceforg:[1,4,6,7],space:29,special:[1,5],specif:[7,15,21,22,23,25,26,27,28],specifi:[4,6,7,11,12,14,15,16,21,22,23,25,26,27,28],specifii:6,springer:2,spusbdatatyp:6,src:[0,1,4],ssc:[11,22],stabl:6,stai:4,standalon:6,standard:[1,4,6,7,22,25,26,27,28],standardmsg:[25,26,27,28],start:[1,4,6,14],startup:6,state:14,statu:[1,14,21,29],step:[6,23],still:[1,2,4,6],stop:[6,7,17],storag:[6,9],store:[12,15,21,22,23],store_s:[15,21,22,23],str:[7,29],straight:7,street:6,string1:11,string2:11,string:[1,4,6,7,11,12,14,15,16,17,21,23,25,26,27,28,29],stringtoint:[7,29],strip:11,strip_pad:11,structur:[14,16],studio:[0,4,5,6],stuttgart:2,style:[25,26,27,28],subclass:[25,26,27,28],subdir:1,submodul:[0,1,6],subset:1,success:[15,21,22,23,25,26,27,28],successful:7,successfulli:6,sudo:[1,6],suffer:[25,26,27,28],suggest:[0,1,4,5,6],suitabl:11,sun:4,superset:[25,26,27,28],support:[1,3,4,6,9,11,12,21,23,25,26,27,28],sure:[6,7],surpress:17,sw1:[1,7,29],sw2:[1,7,29],swerror:[7,13],swutil:[7,8],sym:12,symmetri:[25,26,27,28],syntax:6,sysconfdir:6,system:[1,2,4,5,6,7,15],system_profil:6,systemroot:6,szenario:2,t15:[17,21,23],tabl:[12,14,17,21,22,23],tag:[12,14,16,21,22,23],tagungsband:2,tai:[17,21,23],taj:[17,21,23],take:[14,15,21,22,23,25,26,27,28],taken:6,tar:1,tbi:[17,21,23],tbj:[17,21,23],tci:[17,21,23],tcj:[17,21,23],tck:[17,21,23],tcp:[6,14,21],tcp_port:6,tdi:[17,21,23],teardown:[25,26,27,28],teardownclass:[25,26,27,28],technik:2,technischerichtlinien:1,telecommun:2,templat:[7,12,14,21,22,23],term:6,termin:[0,4,12,15,21,22,23],test:[0,1,4,5,6,7,8],test_capdu:28,test_card_cr:25,test_counter_decr:27,test_external_authent:27,test_get_and_set_card:25,test_incorrect_pin:27,test_internal_authent:27,test_pad:26,test_rapdu:28,test_readdatagroup:25,test_security_environ:27,testcas:[25,26,27,28],testcryptoutil:26,tester:[6,19],testnpacardgener:25,testresult:[25,26,27,28],testsmartcardsam:27,testutil:28,text:[21,25,26,27,28],than:[0,1,4,5,6,25,26,27,28],the_except:[25,26,27,28],thehistor:[14,21],thei:[6,11,12,25,26,27,28],them:[0,17],themselv:2,therefor:9,thesi:2,thi:[1,4,5,6,7,9,11,12,14,15,17,19,20,21,22,23,25,26,27,28,29],thing:[7,14],third:[17,21,23],those:[7,25,26,27,28],through:[0,1,6],time:[1,4,6,7],titl:4,tlv:[12,14,16,21,22,23],tlv_data:16,tlv_find_tag:16,tlv_unpack:16,tlvutil:[7,8],tmp:[1,4],to_str:[12,23],togeth:[0,4],tool:[1,4,6],toolset:6,tr03119:1,traceback:17,tracker:[0,1,4,5,6],tradit:[5,6],transmiss:[17,21,23],transmit:[0,1,4,7],transpar:14,transparentstructureef:[7,14,21],tri:6,trust:[1,6,12,21,22],tupl:[14,16,21,25,26,27,28],tuple1:[25,26,27,28],tuple2:[25,26,27,28],two:[14,21,25,26,27,28],type:[2,6],typeobj:[25,26,27,28],ubuntu:[1,4,6],udc:1,ulrich:2,umbrella:2,umdf:6,umfeld:2,unam:1,und:2,under:[15,21,22,23],understood:15,unequ:[25,26,27,28],unexpect:[25,26,27,28],unexpected_regexp:[25,26,27,28],unfamiliar:[1,4,6],unit:[14,21],unittest:[25,26,27,28],univers:1,unknown:[7,14,21],unless:[25,26,27,28],unlik:[25,26,27,28],unord:[25,26,27,28],unpack:16,unplug:6,unprotect:[12,15,21,22,23],unprotected_result:[15,21,22,23],until:[15,21,22],unverifi:6,updat:[0,1,6,14,21],updatebinari:[14,21],updatebinaryencapsul:[14,21],updatebinaryplain:[14,21],updaterecord:[14,21],updaterecordencapsul:[14,21],updaterecordplain:[14,21],url:[2,6],usabl:[1,2],user:[6,9,15,17,21,22],usr:[1,6],usual:[1,6,7,14,25,26,27,28],utf:6,util:[6,7,8],utils_test:[7,8,24],valid:[6,7,15,21,22,23,25,26,27,28],valu:[4,6,12,14,15,17,21,22,23,25,26,27,28,29],variabl:14,variou:[1,2,11,12,21,22,23],vector:11,vendor:[1,6],vendor_ifd_typ:6,vendor_nam:6,verbos:[1,4,6],verif:[0,1,12,21,22,23],verifi:[0,1,6,12,15,21,22,23],verify_certif:[12,21,22,23],verify_cryptographic_checksum:[12,21,22,23],verify_digital_signatur:[12,21,22,23],verlag:2,version:[0,1,4,5,6,15,21,22,23],via:[0,1,4,5,6,7,11,15,17,20],vicc:[4,6,7,17],virtual:0,virtualicc:[7,17],virtualsmartcard:[6,7],visual:[4,6],vletoux:0,volum:2,vpcd:[4,5],vsmartcard:[0,1,2,4,5,6],w64:4,wai:6,wait:[4,6],waldmann:2,walk:14,want:[0,1,2,7],warm:[17,19],warn:[6,7],warn_noinfo63:21,wdk:6,web:2,welcom:[0,1],well:6,what:[4,7,12,14,21,22],whatev:29,when:[4,5,6,7,17,25,26,27,28,29],where:[1,4,5,6,7,14],wherea:1,whether:[12,15,17,21,22,23,25,26,27,28],which:[0,4,6,7,11,12,14,17,21,25,26,27,28,29],wiki:1,win32:6,window:[1,4,5],winscard:4,wissen:2,with_mark:16,without:[0,1,6,11,25,26,27,28,29],wix:6,wixtoolset:6,wolf:2,word:29,work:[1,4,6,7],workaround:7,workshop:2,world:0,write:[14,21],writeand:14,writebinari:[14,21],writebinaryencapsul:[14,21],writebinaryplain:[14,21],writeor:14,writerecord:[14,21],written:[1,4],wudfhost:6,www:[0,1,4,6],x00:11,x01:7,x02:7,x03:7,x04:7,x38:7,x64:6,x82:6,xff:7,xjf:1,xml:[4,6],xor:14,xxx:7,yield:6,ykneo:0,you:[0,1,2,4,5,6,7,14,21,25,26,27,28],your:[0,1,4,5,6,7],yourself:[2,7],yubico:0,zero:[15,21,22,25,26,27,28],zip:6,zone:22,zum:2,zur:2},titles:["Android Smart Card Emulator","USB CCID Emulator","Welcome to the Virtual Smart Card Architecture documentation!","nPA Smart Card Library","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","cryptoflex Module","ePass Module","nPA Module","tests Package","CardGenerator_test Module","CryptoUtils_test Module","SmartcardSAM_test Module","utils_test Module","utils Module"],titleterms:{android:[0,4,5],architectur:2,build:6,card:[0,1,2,3,4,5,6,7,18],cardgener:9,cardgenerator_test:25,ccid:1,compliant:1,configur:6,constantdefinit:10,contact:[0,5],contactless:4,creat:7,cryptoflex:21,cryptoutil:11,cryptoutils_test:26,document:[2,7],download:[0,1,2,4,5,6],emul:[0,1,4,6],epass:22,exampl:7,gadgetf:1,handlertest:19,hint:[1,4],implement:7,instal:[0,1,4,5,6],interfac:4,iso:7,less:[0,5],libnfc:4,librari:3,like:7,linux:[1,4,6],mac:6,middlewar:4,modul:[9,10,11,12,13,14,15,16,17,19,20,21,22,23,25,26,27,28,29],note:[0,1,4,5,6],npa:[3,23],opensc:1,other:7,packag:[8,18,24],phone:[0,5],python:6,question:[0,1,4,5,6],reader:[1,5],refer:[0,1,2,4,5,6],relai:[4,20],remot:5,run:6,seutil:12,similar:[1,4,6],smart:[0,1,2,3,4,5,6,7],smartcardfilesystem:14,smartcardsam:15,smartcardsam_test:27,swutil:13,test:24,tlvutil:16,type:7,unix:[1,4,6],usag:[1,4],usb:1,util:29,utils_test:28,virtual:[2,6,7],virtualsmartcard:[8,17],vpcd:6,vpicc:6,welcom:2,window:6,written:6}})
\ No newline at end of file
+Search.setIndex({envversion:42,terms:{pezorform_security_oper:14,prefix:[6,8,0],stringtoint:[3,25],controlreferencetempl:[22,7],auf:19,crtl:30,shortdescript:[28,1,18,5],under:[24,9,14,7],digit:[22,24,18,1,28,14,5,7],everi:6,internet:6,counttestcas:[28,1,18,5],mutual_challeng:[24,9,14,7],vector:13,tlvutil:[3,15],verif:[22,8,24,2,14,7],repres:25,seper:6,direct:[30,14,7],second:[18,14,1,28,26,5],street:6,even:[18,14,1,28,26,5,3],"while":3,"new":[22,8,24,10,19,14,26,3,6,17,7],net:[6,2],newlist:26,here:[6,8,3,19,0],xff:3,studio:[6,21,2,0],path:[26,14,9,3,17],wdk:6,infoplist:6,currentef:[26,14],bitmask:[22,24,14,7],teardownclass:[28,1,18,5],powerup:[11,7,14,20,3,30],operation_on_str:13,forwar:0,shortfid:26,cfbundlesignatur:6,"_npa_se__eac_pace_step3":7,libeac:6,ord:3,middlewar:8,describ:6,epassport:24,tlv_data:12,call:[18,1,28,26,5,3],passport:[6,13,24,2,17],type:6,until:[9,14,24],successful:3,giovanni:19,"_cardgenerator__generate_epass":17,notif:8,inttostr:[3,25],warn:[6,3],berlin:19,warm:[20,30],relai:2,bertlv_unpack:12,killal:6,unpack:12,must:[22,8,24,17,18,0,28,14,13,1,5,6,26,21,3,7],springer:19,join:3,restor:[22,24,9,14,7],setup:[28,1,18,5],work:[6,8,3,0],failunlessequ:[28,1,18,5],assertisnon:[28,1,18,5],"05_":19,alioth:[6,8,20,0],root:6,"_unformat_hexdump":25,give:[6,3],sysconfdir:6,autodetect:[8,0],termin:[22,9,0,2,24,14,7],indic:[22,24,14,7],want:[8,2,3,19],generatecard:17,plist:6,end:[22,26,24,14,7],bund:8,how:[8,3,0],answer:[30,14,7],verifi:[22,8,9,2,24,14,6,7],config:[6,22,21,7,0],updat:[6,8,26,2,14],recogn:3,createfil:[26,14],perform_security_oper:[22,24,9,14,7],earlier:6,befor:[28,18,1,3,5],generate_public_key_pair:[22,24,9,14,7],parallel:6,besitz:19,util:[6,3,15],attempt:6,third:[30,14,7],local_ip:3,classmethod:[28,1,18,5],lost:3,perform:[22,8,24,30,14,20,7],maintain:30,environ:[22,24,0,9,14,7],enter:[9,14,24],order:[22,8,9,18,28,14,24,26,1,5,3,7],feedback:[8,0,2,27,6,21],over:[6,21,3,0],cyanogenmod:[21,2],fix:26,add_data:3,cla:[8,25],better:3,connecttoport:[30,3],complex:3,fid:[26,14,3],persist:17,sendcommandapdu:3,schmidt:19,them:[30,2],thei:[22,18,28,13,1,5,6],fragment:8,interrupt:8,echo:8,personalauswei:[19,10],choic:21,capdu:[22,24,9,14,30,7],smartphon:[19,21,2],each:[28,26,1,18,5],debug:[6,28,1,18,5],swutil:[3,15],store_s:[24,9,14,7],mean:[22,9,18,28,14,24,13,1,5,6,30,3,7],simpletlv_unpack:12,runtest:[28,1,18,5],network:[21,3],newli:26,currentdf:[26,14],content:[22,25,17,26,14,3,7],reader:2,expected_regexp:[28,1,18,5],dsa:[24,9,14,7],cipherspec:13,standard:[8,24,18,0,28,1,5,6,3],feature_execute_pac:8,kit:6,test_external_authent:5,convent:[30,14,7],traceback:30,ist:19,teardown:[28,1,18,5],atr:[14,30,3,7],render:[3,25],hook:[28,18,1,3,5],unlik:[28,1,18,5],alreadi:[22,7],system_profil:6,"__getrecord":26,"f\u00fcr":19,cardnumb:9,seekabl:[14,30,3,7],makethirdsoftwarefunctiont:[30,14,7],pkgconfig:0,master:[19,9,14,2,26,30,7],toolset:6,listen:0,"_recordstructureef__getrecord":26,tool:[6,8,27,0],technik:19,logginglevel:[30,3],establishpacechannel:8,vpcd:[21,0],assertisinst:[28,1,18,5],provid:[22,24,18,28,1,5,6,3,7],expr:[28,1,18,5],strip_pad:13,project:[8,19,2,27,0,6,21],close:[3,11],feature_modify_pin_direct:8,modern:[8,0],assertnotalmostequ:[28,1,18,5],raw:[22,24,14,7],seed:24,dataobjecthandlingdecodeencapsul:[26,14],getsocknam:3,cfbundledevelopmentregion:6,maxl:[14,3,7],"_npa_se__unpack_general_authent":7,transmit:[8,2,3,0],ulrich:19,sock_dgram:3,shall:[6,22,24,14,7],object:[22,9,17,18,25,28,1,24,26,14,5,30,3,7],deleg:[6,2,27],regular:[28,1,18,5],bsi:8,secondsft:[26,14],encipher:[22,24,14,7],"0x00000000":6,doi:19,doc:[6,26],doe:[6,24,3,0],tech:27,"__str__":25,random:[8,9,14,24],syntax:6,pkc:6,pkg:0,identifi:[24,0,26,2,9,14,7],pki:24,involv:26,despit:0,isequ:26,exactli:[28,1,18,5],efstructure_linear_variable_:3,holder:6,explain:0,configur:[8,21,2,0],than:[8,18,0,2,27,28,1,5,6,21],dfselectionbyfid:[26,14],recordidentifiersupport:[26,14],server_sock:3,stop:[6,30,3],esign_cert:[6,30,3,7],getreaderpacecap:8,assertrais:[28,1,18,5],report:[6,8,0],eid_pin:7,die_gesamte_technik_ist_sich:19,bar:21,"public":[22,19,9,24,14,6,7],bac:6,security_environ:[22,24,9,14,7],dg15:6,dg16:6,dg12:6,cfbundleexecut:6,"0x40":14,result:[22,24,18,28,1,12,26,14,5,30,3,7],respons:[22,8,9,25,0,11,14,2,27,24,26,3,6,30,17,7],fail:[28,18,1,3,5],themselv:19,foss:19,placeofbirth:6,best:[3,0],said:3,tlv_unpack:12,sigint:3,henryk:6,attribut:[18,25,14,1,28,26,5],accord:[22,24,26,14,30,3,7],extend:[6,19,3],f000000001:2,extens:27,erweiterung:19,restore_s:[24,9,14,7],histchar:[30,14,7],protect:[22,9,2,24,14,6,7],keycard:2,identifier_previ:26,against:[6,21,0],stuttgart:19,und:19,logic:26,countri:6,test_rapdu:28,com:[8,10,0,19,2,27,3,6,21],asctim:3,diff:[28,1,18,5],trust:[6,8,24,14,22],assum:3,nicer:[28,1,18,5],ottavi:6,been:[18,10,28,1,5,3],assertregexpmatch:[28,1,18,5],tizen:2,basic:[24,30],erasebinari:[26,14],numread:6,life:[26,14],lifo:[28,1,18,5],xxx:3,smartwatch:2,ani:[8,9,0,14,2,27,24,3,6,21,7],"0x18d1":6,craft:8,basiert:19,ident:[6,2,10],gnu:[6,8,0],servic:[6,27],properti:[26,25],sourceforg:[6,8,3,0],heidelberg:19,assertsetequ:[28,1,18,5],sln:6,aid:0,print_ascii:3,anchor:[6,22,24,14],keytyp:[24,9,14,7],kwarg:[28,1,18,25,5],conf:[6,3],make_properti:26,verify_cryptographic_checksum:[22,24,14,7],sever:[6,8,0],receiv:[11,30,3,0],suggest:[8,0,2,27,6,21],make:[6,8,25,0],format:3,keyref_is_puk:7,big:[22,14,24,3,7],complet:[18,0,28,1,5,6,3],hasfixedrecords:26,f276a288bcfba69d34f31001:2,searchbinaryplain:[26,14],rais:[18,14,1,28,26,5,3],assertmultilineequ:[28,1,18,5],c_apdu:25,xjf:8,"07_":19,fraunhof:19,client:8,putdataplain:[26,14],thi:[22,8,9,17,18,25,0,28,14,11,24,13,1,30,5,6,20,21,3,7,26],settimeout:3,protocol:[24,2,27,14,6,30,3,7],just:[28,30,1,18,5],photo:17,human:[28,1,18,5],ifdcap:6,previous:[22,24,3,7],"27th":19,els:3,expon:14,adress:25,wissen:19,applic:[8,0,2,27,6,30,21],get_challeng:[24,9,14,7],mayb:8,parse_statu:25,"_selectfil":[26,14],apart:19,measur:[28,1,18,5],daemon:6,specif:[9,18,1,24,28,14,5,3,7],"pl\u00f6tz":6,manual:[21,2,27],tuple1:[28,1,18,5],tuple2:[28,1,18,5],specifii:6,asserttupleequ:[28,1,18,5],www:[6,8,2,0],right:[24,9,14,7],old:[19,26],residencepermit2:6,residencepermit1:6,inact:6,successfulli:6,transmiss:[30,14,7],assertdictcontainssubset:[28,1,18,5],icc:24,tcp_port:6,esign_ca_cert:[6,30,3,7],subclass:[28,1,18,5],t15:[30,14,7],tracker:[8,0,2,27,6,21],unit:[26,14],ifdvendorid:6,localhost:6,core:8,plu:[28,1,18,5],verify_digital_signatur:[22,24,14,7],repositori:[8,19,2,0,6,21],zur:19,obj:[28,8,1,18,5],writebinaryencapsul:[26,14],decodeextendedheaderlist:12,posess:[24,9,7],algo:13,qrserver:3,produc:30,zum:19,encod:[6,22,3,7],down:[14,20,3,30,7],pair:[22,24,7],storag:[6,17],datasetfil:[6,30,3,17],accordingli:6,git:[8,19,2,27,0,6,21],a000000527210101:2,wai:6,cert:6,test_get_and_set_card:1,testnpacardgener:1,pace_mrz:7,avail:[8,0,14,2,26,3,19,6,21],gid:2,editor:19,form:[9,0,24,13,14,17,7],offer:19,datagroupvalu:6,"true":[18,25,14,1,28,26,5],reset:[9,30,11,26,24,14,20,3,7],lopensc:8,readernum:[30,3,11],decodeoffsetdataobject:12,deletefil:[26,14],intern:[22,24,9,14,7],testutil:28,russello:19,featur:19,decrypt:[24,26,9,13,14,7],smartcardfilesystem:[3,15],handlertest:[16,3,15],exist:[2,3,0],ship:[6,8,0],check:[8,9,18,14,24,28,1,5,6,3,7],encrypt:[26,9,14,24,13,3,17,7],warn_noinfo63:14,fukuchi:6,"_set_s":[22,24,14,7],tip:27,decive_unit:6,test:[8,0,2,3,15,6,21],issimpletlv:[26,14],shiguo:19,pbkdf2:6,szenario:19,pseudo:8,hashmethod:13,time:[6,8,3,0],disable_check:[30,3,7],"0x4ee1":6,skip:[28,1,18,5],global:[22,24,9,14,7],signific:[28,1,18,5],identifier_first:26,assertlessequ:[28,1,18,5],depend:[8,24,25,0,26,2,13,14,6,21],zone:24,decim:[28,1,18,5],readabl:[28,24,1,18,5],the_except:[28,1,18,5],x03:3,x02:3,x01:3,x00:13,isinst:[28,1,18,5],x04:3,sourc:[8,21,2,3,27],string:[22,8,9,18,25,0,28,14,12,13,1,30,5,6,26,3,7],addcleanup:[28,1,18,5],unfamiliar:[6,8,0],rdr_to_pc_datablock:8,cryptoutils_test:[29,3,15],brows:[19,21,2],gg487509:8,level:3,die:19,iter:[28,1,18,5],assertequ:[28,1,18,5],item:[28,26,1,18,5],vletoux:2,assertisnot:[28,1,18,5],droid:[21,2],pace_puk:7,sign:[6,22,24,14,7],unprotect:[22,24,9,14,7],scardtransmit:8,port:[6,30,3,0],codeproject:6,appear:8,docleanup:[28,1,18,5],current:[22,19,9,0,26,2,24,13,14,6,17,7],xml:[6,0],deriv:[24,3],honour:[28,1,18,5],gener:[22,9,17,18,25,0,28,14,2,24,13,1,5,6,26,21,3,7],agreement:[22,24,14,7],tcardemul:27,modif:[8,3],address:6,decipher:[22,24,14,7],do_someth:[28,1,18,5],wait:[6,0],box:8,writeor:26,checksum:[22,13,24,14,7],step:[6,7],"__repr__":25,seq2:[28,1,18,5],seq1:[28,1,18,5],"0x8c7b":[6,3],extra:[28,1,18,5],modul:[6,8,3,15,0],mobil:19,"0x60":14,epass:[6,16,3,15],err_incorrectparamet:3,univers:8,connector:[6,0],"_controlreferencetemplate__set_iv":[22,7],handler:30,msi:6,msg:[18,11,1,28,14,30,5,20,3,7],mse:22,msc:6,plug:6,club:19,a000000397425446590201:2,visual:[6,0],templat:[22,24,26,14,3,7],ifdversionnumb:6,kdir:8,tlv_find_tag:12,pretend:6,focu:6,descriptor:[26,14],whatev:25,purpos:[28,18,1,5,0],respsons:30,passportsam:24,openport:[30,3],chip:6,levelnam:3,simul:[2,27],occur:[26,14],verlag:19,multipl:[6,8,3],write:[26,14],"0x80":[22,24,14,7],expected_seq:[28,1,18,5],map:[14,3],product:[6,8],"m\u00fcller":19,max:[13,30,14,7],clone:[8,19,2,27,0,6,21],dataobjecthandlingdecodeplain:[26,14],usabl:[8,19],aid_list:0,mai:[22,9,0,2,27,24,13,14,6,7],data:[22,8,9,18,25,0,28,14,2,12,13,1,30,5,6,26,21,3,7,24],accessori:27,rapdu:[30,3],autotool:6,explicit:[28,1,18,5],inform:[22,19,9,26,24,14,7],"switch":[22,8,24,14,6,7],combin:[22,8,7,0],callabl:[28,1,18,5],"_passportsam__computekei":24,readbinaryplain:[26,14],still:[6,8,19,0],pointer:26,group:[6,3],ifdmanufacturerstr:6,platform:[8,0,2,27,6,21],window:[8,21,0],requir:[8,24,2,3,6,21],mail:6,main:[6,30,2,3,0],"0xe2":[26,14],"universit\u00e4t":19,ef_cardsecur:[6,30,3,7],initi:[22,8,24,26,2,27,13,3,6,7],nation:6,now:[8,9,0,24,14,6,7],discuss:[21,0],nor:[26,14],jump:6,term:6,name:[6,26,14,25,0],revers:[6,3],win32:6,compil:[8,0,2,27,6,21],replac:[22,9,26,24,14,6,7],dfselectionbyfulldfnam:[26,14],continu:10,manage_security_environ:[22,24,9,14,7],space:25,hce:[2,27],correct:[26,14,9,3,24],argz:[26,14],after:[28,1,18,5],failunlessalmostequ:[28,1,18,5],skiptest:[28,1,18,5],header_authent:[24,9,14,7],seutil:[3,15],"_npa_se__eac_pace_step2":7,org:[8,0,2,27,6,20,21],"byte":[22,9,25,26,24,14,30,3,7],"_npa_se__eac_pace_step1":7,"_npa_se__eac_pace_step4":7,actual_seq:[28,1,18,5],pc_to_rdr_secur:8,thing:[26,3],place:[6,28,1,18,5],support:[22,8,18,10,0,28,14,13,1,5,6,17,7],first:[18,28,1,26,14,5,6,3],oper:[22,24,18,0,28,1,13,14,5,26,7],directli:[6,0],arrai:6,yourself:[19,3],symmetri:[28,1,18,5],open:[6,21,2,3,30],size:[26,13,14],ioanni:19,given:[22,24,9,18,0,28,14,12,26,1,5,30,3,7],workaround:3,gertrud:6,caught:[28,1,18,5],citi:6,deciph:[22,24,14,7],fmd:[26,14],keyref_is_mrz:7,especi:[8,21,0],failifalmostequ:[28,1,18,5],dg21:6,specifi:[22,24,9,18,0,28,14,12,13,1,5,6,26,3,7],github:[8,10,19,2,27,0,6,21],mostli:3,"_cardgenerator__generate_iso_card":17,listread:3,simpletlv_data:[26,14],cardsecur:6,setupclass:[28,1,18,5],applet:2,oath:2,ifdproductstr:6,getcard:[3,17],sai:6,unprotected_result:[24,9,14,7],sam:[22,9,17,24,26,14,30,3,7],argument:[6,28,1,18,5],assertless:[28,1,18,5],sar:19,assertgreat:[28,1,18,5],test_internal_authent:5,inpterpret:3,"0x9e":[22,24,14,7],engin:19,"0x9a":[22,8,24,14,7],libpath:6,take:[9,18,28,1,24,26,14,5,7],noth:[22,24,14,7],begin:[26,14],sure:[6,3],normal:[18,1,28,14,5,3],buffer:3,cardgener:[3,15],err_wronglength:3,fci:[26,14],waldmann:19,mrz:[17,7],later:[6,14,3,0],runtim:2,salt:13,hmac:13,show:6,german:[6,21,2,10,0],permiss:[21,2],slot:6,onli:[26,8,24,18,0,28,14,13,1,5,3],activ:0,state:26,protect_respons:[22,24,14,7],dict:6,test_pad:18,erasebinaryencapsul:[26,14],variou:[22,8,24,19,13,14,7],get:[8,17,18,0,28,14,26,1,5,6,3],academictitl:6,ssc:[13,24],mmo11:19,"_virtualicc__recvfromvpicc":30,yield:6,telecommun:19,where:[8,0,26,3,6,21],wiki:8,kernel:8,maximum:[26,9,14,24],testcas:[28,1,18,5],dfname:[26,14],concern:[19,21,0],detect:21,expected_except:[28,1,18,5],handlertesto:[20,3],decodeheaderlist:12,between:[8,18,14,2,28,1,5,6,30,7],"import":[3,27],parent:[26,14,3],commandchaing:[30,14,7],cycl:[26,14],iso7816o:[14,30,3,7],come:3,readlin:6,bertlv_pack:12,apdu:[22,8,9,25,0,11,14,2,27,24,26,3,30,7],cryptoflexs:14,blocklen:13,cryptoflexo:[14,3],recordhandlingdecod:[26,14],mani:12,cfbundlenam:6,overview:[6,3],unittest:[28,1,18,5],period:6,dispatch:[9,30],encodefilecontrolparamet:[26,14],virtualicc:[30,3],save:6,hexdump:25,"_cardgenerator__generate_npa":17,invers:[30,14,7],certifc:6,workshop:19,vendor_ifd_typ:6,systemroot:6,andrea:19,updaterecordplain:[26,14],those:[28,18,1,3,5],dataunitsdecodeplain:[26,14],"case":[8,18,25,0,14,28,1,5,6,3],thesi:19,mount:8,sex:6,invok:[22,24,18,1,28,14,5,7],eid:19,assertsequenceequ:[28,1,18,5],assertnotisinst:[28,1,18,5],redlich:19,eras:[22,24,26,9,14,7],"return":[22,24,9,18,25,28,14,2,12,13,1,30,5,26,3,7],bixvread:6,"__init__":3,develop:[21,2,27,10,0],readrecord:[26,14],seq_typ:[28,1,18,5],media:19,intermediari:8,same:[18,28,1,5,6,3],enciph:[22,24,14,7],binari:[6,26,14,25],html:[8,19,2,6,20,21],pad:[22,13,24,14],lite:[6,20,0],card_typ:[17,30,1,3],"_getdata":25,rfid:0,driver:[6,8,20,21],capabl:[26,30,14,7],extern:[6,22,24,14,7],identifier_next:26,libexec:6,appropri:[22,24,14,27,7],ykneo:2,cct:22,channelid:6,without:[8,18,25,28,2,13,1,5,6],crypt:13,ccc:19,execut:[18,11,14,28,1,30,5,6,20,3,7],when:[18,25,0,28,1,5,6,30,21,3],test_counter_decr:5,rest:3,religiousartisticnam:6,datacod:26,except:[18,28,1,4,5,3],littl:3,maxrecords:[26,3],blob:2,exercis:28,mor12:19,real:[6,8,3,11,0],around:0,read:[24,17,26,14,6,3],prettyprint_anyth:26,neuen:19,neuer:10,world:2,integ:[26,14],authentisierung:19,either:[22,24,26,2,14,7],updaterecordencapsul:[26,14],manag:[18,28,1,5,6,3],what:[22,24,0,26,14,3],communityid:6,putdata:[26,14],pythonwar:6,assertionerror:[28,1,18,5],ifd:6,fsencrypt:[24,9,14,7],exit:[6,8,3,0],tr03119:8,pace_can:7,tdi:[30,14,7],power:[14,20,3,30,7],quit:3,inspect:[28,1,18,5],calculate_mac:13,dataunitsdecodeencapsul:[26,14],writerecord:[26,14],"throw":3,bitstr:[30,14,7],src:[8,2,0],x38:3,mutual_authent:[24,9,14,7],wolf:19,act:[6,3],other:[6,8,21],routin:6,elementari:26,morgner:[8,19,0],getatr:[11,7,14,20,3,30],set_asym_algorithm:[24,9,14,7],strip:13,your:[8,0,2,27,3,6,21],compon:8,sicher:19,log:3,openmoko:[6,8,0],overwrit:[3,25],start:[6,8,26,0],interfac:[8,2],extended_length:30,unam:8,tupl:[18,14,12,1,28,26,5],bundl:6,regard:[26,14],cryptograph:[22,13,24,14,7],getdata:[26,14],qrencod:6,possibl:[6,8,2,0],"default":[8,18,0,28,1,5,6],decodediscretionarydataobject:12,firstsft:[26,14],connect:[11,2,0,3,6,30,21],cbc:13,scanner:21,eraserecord:[26,14],deem:[28,1,18,5],file:[8,9,0,14,2,26,3,6,30,21,17,7],fill:17,googl:0,prepend:[26,13,14],field:[22,24,14,7,25],valid:[9,18,14,24,28,1,5,6,3,7],wixtoolset:6,you:[8,18,0,28,14,2,27,26,1,19,5,6,21,3],string2:13,string1:13,tlv:[22,24,14,12,26,7],congress:19,annex:24,sequenc:[24,18,13,28,1,5],rpc_type:6,docstr:[28,26,1,18,5],gidsapplet:2,"_baseassertequ":[28,1,18,5],directori:[6,8,3],descript:[28,1,18,5],to_str:[22,7],mass:6,dst:22,openpac:6,represent:26,all:[22,24,9,18,0,28,14,12,26,1,5,6,21,3,7],technischerichtlinien:8,"0x9000":8,recordpoint:26,lian:19,follow:[8,0,14,2,26,3,19,6,21],disk:[3,17],edg:[6,8,0],af_inet:3,articl:6,init:[6,8,2],program:[6,19,3],far:6,icao:[13,24,17],mechan:[22,24,14,7],failur:[28,1,18,5],feature_verify_pin_direct:8,list:[8,18,0,28,14,12,26,1,5,6,3],"0x0d46":8,smartcardsam:[3,15],adjust:[22,24,7],"7_win32":6,yubico:2,zero:[9,18,1,24,28,14,5],design:3,pass:[30,3],dfselectionbyapplication_implicit:[26,14],xor:26,sun:0,section:[3,0],abl:[6,27,17],dateofbirth:6,pcsc_scan:6,version:[8,9,0,2,27,24,14,6,21,7],consecut:25,method:[22,9,18,1,24,28,14,5,17,7],full:[21,25,0],hash:[22,13,24,14,7],crypto_checksum:13,num_id:26,test_security_environ:5,modifi:[22,8,3,7,0],valu:[22,9,18,25,0,28,14,24,26,1,5,6,30,7],search:[26,14],surpress:30,"_controlreferencetemplate__set_kei":[22,7],testcryptoutil:18,social:19,updatebinaryplain:[26,14],"_npa_se__pack_general_authent":7,via:[8,9,0,11,2,27,13,3,6,30,21],default_s:[9,7],filenam:8,fsdecrypt:[24,9,14,7],decrement:[9,14,24],establish:[6,21],select:[0,26,2,27,13,14,30,21,3,7],pyreadlin:6,regist:[18,0,27,28,1,5,6,3],two:[18,14,1,28,26,5],taken:6,dummy_hcd:8,more:[22,8,24,18,0,2,27,28,1,5,6,21,3,7],tester:[6,20],eraseto:26,building_gadget_usb_modul:8,sigkil:6,"_setbyt":25,forwared:8,none:[26,24,9,17,18,25,28,14,12,13,1,5,30,3,7],updaterecord:[26,14],dev:[6,8],den:19,def:3,eriknellessen:2,prompt:17,scan:[21,2,3],"_addskip":[28,1,18,5],challeng:[24,9,14,7],accept:[28,1,18,5],acardemul:[2,0],explor:6,updatebinaryencapsul:[26,14],test_capdu:28,iso7816:[6,1,3],testresult:[28,1,18,5],secur:[22,8,9,19,14,24,3,6,30,7],anoth:8,qes_pin:7,iso:[6,2,0],simpl:[26,14,2,3],referenc:[24,9,14,7],assertlistequ:[28,1,18,5],openpicc:0,helloworldapplet:2,associ:[22,24,7],signfic:[28,1,18,5],"short":[26,25],encodebertlvdatalist:12,cardtyp:3,appendrecord:[26,14],help:[6,8,0],compute_digital_signatur:[22,24,14,7],pseudorandom:13,through:[6,8,2],reconnect:3,keyref_is_can:7,suffer:[28,1,18,5],paramet:[22,9,18,28,14,24,13,1,30,5,26,7],style:[28,1,18,5],recordnumbersupport:[26,14],might:[24,14,9,3,7],pcd:[6,30,3],assertitemsequ:[28,1,18,5],extendedl:[30,14,7],gadget:8,framework:6,ins2handl:[30,14,7],cfbundlevers:6,instruct:[26,14],authent:[22,24,9,14,7],"_controlreferencetemplate__set_algo":[22,7],mingw:0,"27c3":19,found:[28,18,1,3,5],standardmsg:[28,1,18,5],unequ:[28,1,18,5],libpcsclit:6,expect:[28,18,1,3,5],bertlv:12,virtualsmartcard:[6,3],angriff:19,einem:19,failifequ:[28,1,18,5],"0xac":[22,24,14,7],publish:6,research:19,print:[8,0,3,6,30,21],"_cardgenerator__generate_cryptoflex":17,foreground:0,puk:[24,9,14,7],with_mark:12,krontiri:19,differ:[22,19,24,18,28,17,13,1,5,6,3,7],reason:[28,1,18,5],base:[22,8,9,18,25,0,11,14,2,24,28,26,1,30,4,5,20,17,7],put:[26,14],dfselectionbypartialdfnam:[26,14],cyberflex:[6,13],mmc:6,basi:[28,1,18,5],omit:[18,1,28,14,5,30,7],round:[28,1,18,5],"0xa4":[26,14,3],assign:[26,25],humboldt:19,propertylist:6,"_makesalt":13,number:[8,9,18,0,28,14,24,26,1,5,6,3,7],done:[3,0],dylib:6,qrcode:3,stabl:6,miss:[6,8,0],gpl:[8,0,2,27,6,21],guess:6,mobilen:19,smartcardo:[11,7,14,20,3,30],script:6,interact:17,jen:19,store:[22,24,9,14,7],option:[8,18,0,28,14,13,1,5,6,30,17,7],selectfil:[26,14],part:[6,19,26],pars:[22,9,25,24,14,3,7],readdatagroup:[3,17],esign:6,utils_test:[29,3,15],kind:[22,8,24,0,2,27,14,6,21],callableobj:[28,1,18,5],cyclic:26,remot:[2,0],remov:[22,26,24,14],get_index:26,dtd:6,issuingst:6,keyref_is_pin:7,str:[3,25],randomli:6,comput:[22,19,24,2,13,14,6,21,7],extra_fci_data:26,packag:3,do_encrypt:13,dedic:26,"null":6,cvca:[6,30,3,7],bz2:8,lib:[6,8,0],self:[28,18,1,3,5],also:[8,0,14,2,27,26,3,6,17],callable_obj:[28,1,18,5],build:[8,21,2,0],vsmartcard:[8,19,2,27,0,6,21],get_referenced_ciph:9,bixvreaderinstal:6,distribut:0,om11:19,spusbdatatyp:6,choos:[6,21,2,27,0],most:[8,18,0,12,28,1,5,3],maco:6,assignlogicalchannel:[30,14,7],resp_data:24,filesystem:[24,9,14,17,7],cover:[6,0],newvalu:[26,12],esign_kei:[30,3,7],microsoft:[6,8,0],session:3,"_getsw":25,find:[6,8,3,12,0],impact:[21,0],firewal:3,pretti:3,solut:6,simpletlv_pack:12,iec:0,documenttyp:6,openpcd:0,ifdread:6,express:[28,1,18,5],parse_se_config:[22,7],nativ:0,restart:6,keyword:[28,1,18,5],crt:[22,24,7],"_getassertequalityfunc":[28,1,18,5],d2760001240102000000000000010000:2,certif:[6,22,24,14,27],set:[22,24,18,0,28,1,26,14,5,6,30,17,7],dump:25,startup:6,default_uid:8,methodnam:[28,1,18,5],atexit:3,see:[8,30,0,14,26,3,6,20,7],arg:[18,25,28,1,26,14,4,5,30,3,7],pcsc:[6,0],someth:6,opensc_lib:8,ca_kei:[6,30,3,7],subdir:8,linelen:25,altern:[6,8,19,0],signatur:[6,22,24,14,7],ef_cardaccess:[6,30,3,7],compute_cryptographic_checksum:[22,24,14,7],both:[28,8,1,18,5],informatik:19,last:[26,13,14],someexcept:[28,1,18,5],unexpected_regexp:[28,1,18,5],dlitz:6,context:[28,18,1,3,5],pdf:19,load:[6,8,3],simpli:[6,3],"_handlertestos__output_from_l":20,point:26,ubuntu:[6,8,0],header:[22,8,24,0,14,7],param:26,"_truncatemessag":[28,1,18,5],backend:0,java:2,devic:[6,8,2],ifdprotocolsupport:6,secret:[24,13,9,14,7],"0xb2":[26,14],"0xb3":[26,14],"0xb0":[26,14],"0xb1":[26,14],test_card_cr:1,imag:6,vendor_nam:6,hassimpletlv:26,winscard:0,testsmartcardsam:5,look:[8,19,26,2,0,3,6],"0xbc":[22,24,14,7],straight:3,histor:[26,30,14,7],pace:[6,8,2],dominik:[19,0],abov:6,error:[8,18,28,14,26,1,5,3],sw1:[8,3,25],sw2:[8,3,25],fixtur:[28,1,18,5],loop:30,pack:12,writeand:26,itself:3,getdataencapsul:[26,14],decor:26,familynam:6,x64:6,recordstructureef:[26,3],"0x8e":[22,24,14,7],decod:[26,14],test_incorrect_pin:5,x82:6,optim:[28,1,18,5],wherea:8,sym:22,user:[9,24,14,6,30,17],"_setsw":25,chang:[8,9,0,24,14,6,7],recent:8,equival:[28,1,18,5],older:[6,8,19,0],entri:8,momr12:19,custom_url:3,iscycl:26,lastcommandsw:3,informat:19,input:13,recalculate_length:12,bin:6,vendor:[6,8],transpar:26,bertlv_data:[26,14],pace_pin:7,index_curr:[26,14],bix:6,assertfals:[28,1,18,5],bit:[26,13,14],basicconfig:3,nofurtherinfo:3,reader0:6,reader1:6,reader2:6,signal:[30,3],collect:[28,1,18,5],givennam:6,modprob:8,some:[8,3,19],back:[11,30,3,27,0],understood:9,sampl:2,"_deprec":[28,1,18,5],updatebinari:[26,14],assertnotequ:[28,1,18,5],publikationen:8,prop:[26,25],informationstechnologi:19,licel:2,retri:[9,14,24],"_controlreferencetemplate__replace_tag":[22,7],machin:[6,8,24],previou:[26,14],run:[8,21,2,0],"_format_field":25,word:25,sm_header:[22,24,14,7],signalhandl:[30,3],"\u00ecnfo":6,output:6,requestedtl:[26,14],readrecordplain:[26,14],memori:[24,9,14,7],newtlvlist:[26,14],dialog:27,block:[13,9,3,14,24],directconvent:[30,14,7],ensur:6,ifdproductid:6,cfbundleinfodictionaryvers:6,institut:19,ff557573:6,sock:3,"long":[26,14,3,0],custom:8,epass_s:24,"0xca":[26,14],includ:[22,19,9,18,0,14,2,27,24,28,1,5,6,3,7],"0xcb":[26,14],forward:[8,30,3,11],getrespons:[30,14,7],tradit:[6,21],fabio:6,doctyp:6,assertnotin:[28,1,18,5],pwd:8,"0x00000001":6,link:6,newer:[21,2],delta:[28,1,18,5],line:[8,18,25,28,1,5,6],sdk:[21,2,27],info:[6,8,3],fdid:[21,2],fdb:3,utf:6,assertisnotnon:[28,1,18,5],libifdvpcd:6,get_cipher_blocklen:13,chao:19,lectur:19,verify_certif:[22,24,14,7],effective_l:25,incomplet:6,get_ciph:13,frankmorgn:[8,10,19,2,27,0,6,21],titl:0,sequenti:26,invalid:[6,14,9,3,24],handler_test:[6,20,3],nice:25,"_make_byte_properti":25,asserttru:[28,1,18,5],libccid:8,vicc:[6,30,3,0],algorithm:[22,9,24,13,14,7],"_classsetupfail":[28,1,18,5],hello:2,code:[22,8,24,25,0,14,2,12,26,3,6,21,7],partial:[26,14],hashmap:9,"_formatmessag":[28,1,18,5],birthnam:6,pcsclite:[6,8,20,0],privat:[22,9,24,14,6,7],jcardsim:2,send:[22,24,11,14,0,27,13,3,30],cfbundlepackagetyp:6,sent:[3,0],unverifi:6,libopensc:8,w64:0,mous:6,electron:[6,2,10],volum:19,implicitli:3,"_deldata":25,tri:6,magic:3,smartcardsam_test:[29,3,15],"try":[19,3],getstatu:25,maxsiz:26,pleas:[8,0,2,27,6,21],writebinari:[26,14],assertdictequ:[28,1,18,5],odd:[26,14],click:6,append:[22,13,26,14,7],compat:8,index:[9,18,0,28,1,26,14,5],compar:[28,14,1,18,5],access:[22,8,9,10,0,2,24,14,6,30,21,7],pwendland:2,can:[8,18,0,11,14,2,28,26,1,19,5,6,21,3,7],eac_step:7,gesamt:19,len:[14,30,3,7],let:3,filedescriptor:[26,14,3],establishpacechannelinput:8,sinc:[6,8],authenticate_head:[22,24,14,7],erase_s:[24,9,14,7],copyright:6,autoreconf:[6,8,0],headless:27,cardgenerator_test:[29,3,15],implement:[6,8,2],honor:26,new_fil:3,app:[0,2,27,3,6,21],submodul:[6,8,2,27],apt:8,api:[6,3],regexp:[28,1,18,5],wix:6,from:[22,19,9,17,18,0,11,14,2,27,24,28,26,1,5,6,30,21,3,7],zip:6,commun:[19,0,2,27,3,6,30,21],doubl:6,next:[26,14,27,7],encodedataoffsetobject:12,readrecordencapsul:[26,14],chr:3,camera:[21,2],usr:[6,8],chv:[24,9,14,7],makesecondsoftwarefunctiont:[26,14],secondsoftwar:[26,14],comparison:[28,1,18,5],"_npa_se__eac_ca":7,unplug:6,actual:[18,11,0,28,1,5,21,3],retriev:[24,9,14,7],alia:[28,1,18,5],onetimewrit:26,endian:3,cardsecret:9,fetch:[27,21,2,3],control:[22,26,24,14,7],tar:8,process:[2,27,0],sudo:[6,8],calcul:[24,0,13,14,30,7],tag:[22,24,14,12,26,7],proprietari:[6,8,26],serial:[6,8],tai:[30,14,7],taj:[30,14,7],original_func:[28,1,18,5],"0xd0":[26,14],"0xd1":[26,14],"0xd2":[26,14],remotesmartcardread:[21,2],"0xd6":[26,14],"0xd7":[26,14],six:22,sig:30,instead:[18,25,2,28,1,5,6],msdn:[6,8],npa:2,maximumchannel:[30,14,7],protect_result:[24,9,14,7],assert_:[28,1,18,5],bndl:6,physic:[3,11],derive_kei:24,erasebinaryplain:[26,14],"_get_referenced_kei":[24,9,14,7],sit:19,asserti:[28,1,18,5],correspond:[9,3],element:[6,28,1,18,5],issu:[6,8,0],"0xda":[26,14],"0xdb":[26,14],"0xdc":[26,14],"0xdd":[26,14],allow:[18,0,2,27,28,1,5,6,21],datefmt:3,failunless:[28,1,18,5],insight:3,chipkartenles:19,"_diffthreshold":[28,1,18,5],cryptoutil:[3,15],addtypeequalityfunc:[28,1,18,5],chosen:6,npa_at_crt:7,isoapplet:2,therefor:17,"0xxx":3,handl:[26,14,3],handi:19,index_htm:8,get_cipher_keylen:13,nfc:[19,0,2,3,6,21],rfu:[24,9,14,7],edit:3,swerror:[3,4],mode:[22,8,9,0,13,3,6,21],dateofexpiri:6,scardcontrol:8,decodetaglist:12,subset:8,establishpacechanneloutput:8,failif:[28,1,18,5],meta:25,"static":[26,24,14,30,7],our:[8,25,10,0,19,2,27,3,6,21],patch:8,simpletlv:12,special:[8,21],out:[8,3],variabl:26,suitabl:13,hardwar:[6,8,21,2,0],ref:26,insmod:8,umbrella:19,frank:[8,19,0],manipul:[22,24,14,7],standalon:6,getpath:[26,14],dictionari:[22,7],usual:[8,18,26,28,1,5,6,3],releas:[6,8,19,0],"_setdata":25,linuxtag:19,bleed:[6,8,0],relayo:[3,11],indent:[26,25],keep:[28,1,18,5],counterpart:8,length:[22,18,25,28,14,12,13,1,5,26,3,7],enforc:[28,1,18,5],softwar:[0,26,14,6,30,21,3,7],padding_class:13,smartcard:[19,11,26,3,6,30,21],general_authent:7,list1:[28,1,18,5],list2:[28,1,18,5],wudfhost:6,dfselectionbypath:[26,14],readbinari:[26,14],unknown:[26,14,3],licens:[8,0,2,27,6,21],mkdir:8,system:[8,9,19,0,3,6,21],messag:[22,9,18,28,14,24,13,1,4,5,6,30,3,7],attach:[21,2,27],attack:[11,21,3,0],privaci:19,readbinaryencapsul:[26,14],longmessag:[28,1,18,5],shell:6,gear:27,deconstruct:[28,1,18,5],failunlessrais:[28,1,18,5],rsa:[24,9,14,7],udc:8,nobodi:24,datatyp:[28,1,18,5],makeatr:[30,14,7],makefirstsoftwarefunctiont:[26,14],structur:[26,12],charact:[30,14,7],ber:[26,14],counter:[9,18,28,14,24,13,1,5],r_apdu:[3,25],session_kei:13,have:[8,18,0,19,2,27,28,1,5,6,21,3],tabl:[22,24,14,26,30,7],need:[8,9,18,0,14,2,27,24,28,1,5,6,21,3,7],oepen:[19,0],sicherheitsanalys:19,set_mf:[24,9,14,7],cryptoflexgeneratortest:1,npao:[3,7],min:3,"0x04":[8,3],"0x00":[22,24,3,7],"0x01":[8,3],"0x02":[8,3],"0x03":8,"0x3010":8,identifier_last:26,which:[22,18,25,0,28,14,2,13,1,5,6,26,3,30],"_recordstructureef__getrecordsbynumb":26,pkg_config_path:0,powerdown:[11,7,14,20,3,30],unless:[28,1,18,5],firstsoftwar:[26,14],assertalmostequ:[28,1,18,5],cipher:[24,13,9,14,7],kitkat:[21,2],deploi:[21,2,27],transparentstructureef:[26,14,3],cryptoflexmf:[14,3],"class":[22,9,17,18,25,11,28,14,24,26,1,30,5,20,3,7],prove:[24,9,7],"0xe0":[26,14],"0xe4":[26,14],url:[6,19],request:[6,19,26,3],pipe:[6,8],determin:[28,1,18,5],"0x0e":[26,14],"0x0f":[26,14],reset_retry_count:7,test_readdatagroup:1,"0x0c":[26,14],text:[28,14,1,18,5],verbos:[6,8,0],elif:3,bring:6,anywai:[6,24],setter:[24,9,14,7],locat:[8,19,0],destroypacechannel:8,ducktyp:[28,1,18,5],should:[22,8,24,18,0,28,14,26,1,5,6,3,7],local:[6,8],contribut:[8,0,2,27,6,21],typeobj:[28,1,18,5],cryptoflexsam:14,libqrencod:6,pypi:6,tbi:[30,14,7],pc_to_rdr_xfrblock:8,tbj:[30,14,7],enabl:[6,8,19,0],integr:[6,10],contain:[22,9,18,28,1,24,26,14,5,6,7],devmgmt:6,cardaccess:6,putdataencapsul:[26,14],datalist:[26,12],frame:30,knowledg:3,append_pad:13,refdataobj:26,gmail:8,statu:[26,8,14,25],thehistor:[26,14],correctli:[9,14,7],pattern:[28,1,18,5],written:[8,0],cardconnectionexcept:3,neither:[26,14],email:6,get_card_numb:[24,9,14,7],kei:[22,9,14,24,13,3,6,7],parse_sm_capdu:[22,24,9,14,7],entir:3,disconnect:3,addit:0,g_ether:8,resetrecordpoint:26,datagroupnam:6,equal:[9,18,28,1,24,26,14,5],etc:[6,3],asym:22,instanc:[26,12],internal_authent:[24,9,14,7],npa_sam:7,formatresult:[14,30,3,7],walk:26,respect:3,num_result:12,"_recordstructureef__getrecordsbyidentifi":26,encodediscretionarydataobject:12,creat:[6,8],searchbinaryencapsul:[26,14],datagroup:17,include_fil:12,immedi:[28,1,18,5],mrtd:[6,24],assertnotregexpmatch:[28,1,18,5],assert:[28,1,18,5],togeth:[2,0],openpgp:2,present:8,tagungsband:19,multi:[28,1,18,5],erasefrom:26,plain:[22,24,9,14,7],assertraisesregexp:[28,1,18,5],defin:[8,9,24],"_virtualicc__sendtovpicc":30,efstructure_transpar:3,ini:6,layer:6,almost:[28,1,18,5],incom:[6,0],"7_3":19,scienc:19,welcom:[8,2],cross:0,member:[28,1,18,5],constantdefinit:[3,15],set1:[28,1,18,5],set2:[28,1,18,5],umdf:6,contactless:2,http:[8,10,0,19,2,27,3,6,20,21],hostnam:[6,3,0],writebinaryplain:[26,14],shortfidsupport:[26,14],php:0,setcard:17,efstructure_linear_fixed_:3,off:[8,3],well:6,"0x10":8,exampl:[6,8,0],command:[22,8,9,30,25,0,11,14,2,27,24,26,3,6,20,7],english:6,error_cod:[28,1,18,5],umfeld:19,latest:[6,8,19,0],distanc:0,tcp:[6,26,14],des3:13,tcj:[30,14,7],tck:[30,14,7],tci:[30,14,7],web:19,superset:[28,1,18,5],ifdfriendlynam:6,makefil:8,add:[22,8,18,0,28,1,5,3,7],cleanup:[18,11,28,1,5,3],getdataplain:[26,14],match:[18,0,1,28,26,5,6],futur:[24,9,14,7],efstructure_cyclic_nofurtherinfo:3,piec:26,built:[6,21,2,0],realiz:0,know:[6,3],press:30,recurs:[6,26],insert:0,like:[6,8,0],success:[9,18,1,24,28,14,5,7],mo10:19,unord:[28,1,18,5],necessari:0,"0xff":[8,30,3,14,7],pariti:24,failureexcept:[28,1,18,5],home:10,peter:19,librari:[],tmp:[8,0],guid:[19,27],lead:6,avoid:3,cryptoflex:[6,16,3,17,15],"_format_part":25,importerror:3,nellesson:2,"enum":0,dcb:[26,14],host:[8,0,2,3,6,30,21],mitm:[3,11],although:6,offset:[26,14,12,25],pyscard:[6,3],about:[6,3],getfile_byrefdataobj:26,socket:[6,30,2,3],assertin:[28,1,18,5],friendlynam:6,lifecycl:[26,14],fals:[18,25,28,14,12,26,1,5,6,30,3,7],disabl:6,own:[18,2,27,28,1,5,6],change_reference_data:[24,9,14,7],automat:[18,1,28,14,5,6,30,7],dataset:[6,3],normal_rest:3,pacecap:8,appl:6,"function":[26,19,9,18,25,10,28,14,24,13,1,5,30,3,7],iso7816generatortest:1,unexpect:[28,1,18,5],eac:[6,7],oep10:19,bug:[6,8,3,0],count:[28,1,18,5],whether:[22,9,18,1,24,28,14,5,30,7],record:[26,3],below:[6,0],devicenam:6,pcscd:[6,3],seid:[22,24,9,14,7],maxdiff:[28,1,18,5],otherwis:[22,18,0,28,1,26,14,5,7],problem:6,devices_compatibility_matrix:0,smartcardservic:6,pil:6,pin:[8,9,2,14,24],"int":[8,0],erik:2,probabl:[6,8,0],detail:[18,28,1,5,6,3],virtual:2,expr2:[28,1,18,5],expr1:[28,1,18,5],bool:[26,30,14,7],defaulttestresult:[28,1,18,5],npa_s:7,external_authent:[24,9,14,7],debian:[6,8,20,0],stai:0,lastcommandoffcut:3,assertgreaterequ:[28,1,18,5],pycrypto:6,samsung:27,excclass:[28,1,18,5],dg14:6,auxiliari:[6,8,0],applicationidentifi:[26,14]},objtypes:{"0":"py:module","1":"py:method","2":"py:class","3":"py:staticmethod","4":"py:attribute","5":"py:classmethod","6":"py:function","7":"py:exception"},objnames:{"0":["py","module","Python module"],"1":["py","method","Python method"],"2":["py","class","Python class"],"3":["py","staticmethod","Python static method"],"4":["py","attribute","Python attribute"],"5":["py","classmethod","Python class method"],"6":["py","function","Python function"],"7":["py","exception","Python exception"]},filenames:["pcsc-relay/README","virtualsmartcard/api/virtualsmartcard.tests.CardGenerator_test","ACardEmulator/README","virtualsmartcard/api","virtualsmartcard/api/virtualsmartcard.SWutils","virtualsmartcard/api/virtualsmartcard.tests.SmartcardSAM_test","virtualsmartcard/README","virtualsmartcard/api/virtualsmartcard.cards.nPA","ccid/README","virtualsmartcard/api/virtualsmartcard.SmartcardSAM","npa/README","virtualsmartcard/api/virtualsmartcard.cards.Relay","virtualsmartcard/api/virtualsmartcard.TLVutils","virtualsmartcard/api/virtualsmartcard.CryptoUtils","virtualsmartcard/api/virtualsmartcard.cards.cryptoflex","virtualsmartcard/api/virtualsmartcard","virtualsmartcard/api/virtualsmartcard.cards","virtualsmartcard/api/virtualsmartcard.CardGenerator","virtualsmartcard/api/virtualsmartcard.tests.CryptoUtils_test","index","virtualsmartcard/api/virtualsmartcard.cards.HandlerTest","remote-reader/README","virtualsmartcard/api/virtualsmartcard.SEutils","virtualsmartcard/api/virtualsmartcard.ConstantDefinitions","virtualsmartcard/api/virtualsmartcard.cards.ePass","virtualsmartcard/api/virtualsmartcard.utils","virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem","TCardEmulator/README","virtualsmartcard/api/virtualsmartcard.tests.utils_test","virtualsmartcard/api/virtualsmartcard.tests","virtualsmartcard/api/virtualsmartcard.VirtualSmartcard"],titles:["PC/SC Relay","CardGenerator_test Module","Android Smart Card Emulator","Creating a Virtual Smart Card","SWutils Module","SmartcardSAM_test Module","Virtual Smart Card","nPA Module","USB CCID Emulator","SmartcardSAM Module","nPA Smart Card Library","Relay Module","TLVutils Module","CryptoUtils Module","cryptoflex Module","virtualsmartcard Package","cards Package","CardGenerator Module","CryptoUtils_test Module","Welcome to the Virtual Smart Card Architecture documentation!","HandlerTest Module","Remote Smart Card Reader","SEutils Module","ConstantDefinitions Module","ePass Module","utils Module","SmartcardFilesystem Module","Tizen Smart Card Emulator","utils_test Module","tests Package","VirtualSmartcard Module"],objects:{"virtualsmartcard.VirtualSmartcard.VirtualICC":{run:[30,1,1,""],"_VirtualICC__recvFromVPICC":[30,1,1,""],openPort:[30,3,1,""],stop:[30,1,1,""],connectToPort:[30,3,1,""],signalHandler:[30,1,1,""],"_VirtualICC__sendToVPICC":[30,1,1,""]},"virtualsmartcard.cards.nPA.NPAOS":{reset:[7,1,1,""],execute:[7,1,1,""],mf:[7,4,1,""],SAM:[7,4,1,""],makeATR:[7,3,1,""],getATR:[7,1,1,""],makeThirdSoftwareFunctionTable:[7,3,1,""],getResponse:[7,1,1,""],powerUp:[7,1,1,""],seekable:[7,3,1,""],formatResult:[7,1,1,""],powerDown:[7,1,1,""]},"virtualsmartcard.tests.utils_test":{TestUtils:[28,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexMF":{selectFile:[14,1,1,""],getDataEncapsulated:[14,1,1,""],currentDF:[14,1,1,""],decrypt:[14,1,1,""],firstSFT:[14,4,1,""],dataObjectHandlingDecodeEncapsulated:[14,1,1,""],select:[14,1,1,""],dfname:[14,4,1,""],updateRecordEncapsulated:[14,1,1,""],"_selectFile":[14,1,1,""],currentEF:[14,1,1,""],deleteFile:[14,1,1,""],append:[14,1,1,""],content:[14,4,1,""],encrypt:[14,1,1,""],readRecordPlain:[14,1,1,""],eraseBinaryPlain:[14,1,1,""],create:[14,3,1,""],dataUnitsDecodeEncapsulated:[14,1,1,""],lifecycle:[14,4,1,""],current:[14,4,1,""],putDataPlain:[14,1,1,""],fid:[14,4,1,""],bertlv_data:[14,4,1,""],writeRecord:[14,1,1,""],makeSecondSoftwareFunctionTable:[14,3,1,""],getDataPlain:[14,1,1,""],updateBinaryPlain:[14,1,1,""],simpletlv_data:[14,4,1,""],dataUnitsDecodePlain:[14,1,1,""],parent:[14,4,1,""],readbinary:[14,1,1,""],updatebinary:[14,1,1,""],createFile:[14,1,1,""],dataObjectHandlingDecodePlain:[14,1,1,""],getpath:[14,1,1,""],putDataEncapsulated:[14,1,1,""],searchBinaryPlain:[14,1,1,""],appendRecord:[14,1,1,""],readBinaryPlain:[14,1,1,""],filedescriptor:[14,4,1,""],readRecordEncapsulated:[14,1,1,""],erasebinary:[14,1,1,""],getdata:[14,1,1,""],data:[14,4,1,""],updateRecordPlain:[14,1,1,""],recordHandlingDecode:[14,1,1,""],makeFirstSoftwareFunctionTable:[14,3,1,""],putdata:[14,1,1,""],eraseRecord:[14,1,1,""],encodeFileControlParameter:[14,3,1,""],readBinaryEncapsulated:[14,1,1,""],writeBinaryEncapsulated:[14,1,1,""],writerecord:[14,1,1,""],updaterecord:[14,1,1,""],writeBinaryPlain:[14,1,1,""],remove:[14,1,1,""],eraseBinaryEncapsulated:[14,1,1,""],readrecord:[14,1,1,""],appendrecord:[14,1,1,""],updateBinaryEncapsulated:[14,1,1,""],secondSFT:[14,4,1,""],writebinary:[14,1,1,""],searchBinaryEncapsulated:[14,1,1,""]},"virtualsmartcard.VirtualSmartcard.SmartcardOS":{reset:[30,1,1,""],powerDown:[30,1,1,""],powerUp:[30,1,1,""],execute:[30,1,1,""],getATR:[30,1,1,""]},"virtualsmartcard.VirtualSmartcard":{SmartcardOS:[30,2,1,""],Iso7816OS:[30,2,1,""],VirtualICC:[30,2,1,""]},"virtualsmartcard.SmartcardFilesystem.File":{simpletlv_data:[26,4,1,""],putdata:[26,1,1,""],encrypt:[26,1,1,""],parent:[26,4,1,""],readbinary:[26,1,1,""],updatebinary:[26,1,1,""],erasebinary:[26,1,1,""],decrypt:[26,1,1,""],getpath:[26,1,1,""],lifecycle:[26,4,1,""],readrecord:[26,1,1,""],appendrecord:[26,1,1,""],bertlv_data:[26,4,1,""],fid:[26,4,1,""],filedescriptor:[26,4,1,""],writerecord:[26,1,1,""],getdata:[26,1,1,""],writebinary:[26,1,1,""],select:[26,1,1,""],updaterecord:[26,1,1,""]},"virtualsmartcard.SEutils.ControlReferenceTemplate":{to_string:[22,1,1,""],parse_SE_config:[22,1,1,""],"_ControlReferenceTemplate__set_algo":[22,1,1,""],"_ControlReferenceTemplate__set_iv":[22,1,1,""],"_ControlReferenceTemplate__set_key":[22,1,1,""],"_ControlReferenceTemplate__replace_tag":[22,1,1,""]},"virtualsmartcard.SmartcardFilesystem.MF":{selectFile:[26,1,1,""],create:[26,3,1,""],getDataEncapsulated:[26,1,1,""],updaterecord:[26,1,1,""],decrypt:[26,1,1,""],firstSFT:[26,4,1,""],dataObjectHandlingDecodeEncapsulated:[26,1,1,""],writeBinaryPlain:[26,1,1,""],updateRecordEncapsulated:[26,1,1,""],dfname:[26,4,1,""],"_selectFile":[26,1,1,""],currentEF:[26,1,1,""],deleteFile:[26,1,1,""],append:[26,1,1,""],readbinary:[26,1,1,""],updatebinary:[26,1,1,""],encrypt:[26,1,1,""],readRecordPlain:[26,1,1,""],eraseBinaryPlain:[26,1,1,""],erasebinary:[26,1,1,""],dataUnitsDecodeEncapsulated:[26,1,1,""],updateRecordPlain:[26,1,1,""],current:[26,4,1,""],putDataPlain:[26,1,1,""],fid:[26,4,1,""],writeRecord:[26,1,1,""],content:[26,4,1,""],makeSecondSoftwareFunctionTable:[26,3,1,""],updateBinaryPlain:[26,1,1,""],select:[26,1,1,""],simpletlv_data:[26,4,1,""],dataUnitsDecodePlain:[26,1,1,""],parent:[26,4,1,""],bertlv_data:[26,4,1,""],writeBinaryEncapsulated:[26,1,1,""],createFile:[26,1,1,""],dataObjectHandlingDecodePlain:[26,1,1,""],getpath:[26,1,1,""],putDataEncapsulated:[26,1,1,""],searchBinaryPlain:[26,1,1,""],appendRecord:[26,1,1,""],readBinaryPlain:[26,1,1,""],filedescriptor:[26,4,1,""],readRecordEncapsulated:[26,1,1,""],writerecord:[26,1,1,""],getdata:[26,1,1,""],data:[26,4,1,""],lifecycle:[26,4,1,""],recordHandlingDecode:[26,1,1,""],makeFirstSoftwareFunctionTable:[26,3,1,""],putdata:[26,1,1,""],eraseRecord:[26,1,1,""],encodeFileControlParameter:[26,3,1,""],readBinaryEncapsulated:[26,1,1,""],getDataPlain:[26,1,1,""],currentDF:[26,1,1,""],remove:[26,1,1,""],eraseBinaryEncapsulated:[26,1,1,""],readrecord:[26,1,1,""],appendrecord:[26,1,1,""],updateBinaryEncapsulated:[26,1,1,""],secondSFT:[26,4,1,""],writebinary:[26,1,1,""],searchBinaryEncapsulated:[26,1,1,""]},"virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils":{addTypeEqualityFunc:[18,1,1,""],assertLessEqual:[18,1,1,""],tearDown:[18,1,1,""],assertNotEquals:[18,1,1,""],assertNotAlmostEquals:[18,1,1,""],assertNotAlmostEqual:[18,1,1,""],assertIsNone:[18,1,1,""],test_padding:[18,1,1,""],"_getAssertEqualityFunc":[18,1,1,""],failureException:[18,4,1,""],fail:[18,1,1,""],assertEqual:[18,1,1,""],assertRegexpMatches:[18,1,1,""],shortDescription:[18,1,1,""],failUnlessRaises:[18,1,1,""],"_classSetupFailed":[18,4,1,""],skipTest:[18,1,1,""],assertLess:[18,1,1,""],assertMultiLineEqual:[18,1,1,""],"_diffThreshold":[18,4,1,""],assertSequenceEqual:[18,1,1,""],"_addSkip":[18,1,1,""],"_truncateMessage":[18,1,1,""],assertIn:[18,1,1,""],assertRaisesRegexp:[18,1,1,""],addCleanup:[18,1,1,""],assertGreater:[18,1,1,""],"_baseAssertEqual":[18,1,1,""],run:[18,1,1,""],tearDownClass:[18,5,1,""],assertItemsEqual:[18,1,1,""],assertRaises:[18,1,1,""],longMessage:[18,4,1,""],assertAlmostEquals:[18,1,1,""],assertTrue:[18,1,1,""],assertDictEqual:[18,1,1,""],failIfAlmostEqual:[18,1,1,""],doCleanups:[18,1,1,""],assertDictContainsSubset:[18,1,1,""],failIfEqual:[18,1,1,""],failUnlessAlmostEqual:[18,1,1,""],setUp:[18,1,1,""],failIf:[18,1,1,""],assertNotRegexpMatches:[18,1,1,""],assertFalse:[18,1,1,""],assertNotIsInstance:[18,1,1,""],assertTupleEqual:[18,1,1,""],"_formatMessage":[18,1,1,""],assertEquals:[18,1,1,""],maxDiff:[18,4,1,""],assertIs:[18,1,1,""],assertIsInstance:[18,1,1,""],"_deprecate":[18,1,1,""],failUnlessEqual:[18,1,1,""],assert_:[18,1,1,""],failUnless:[18,1,1,""],assertAlmostEqual:[18,1,1,""],setUpClass:[18,5,1,""],assertNotEqual:[18,1,1,""],assertIsNot:[18,1,1,""],assertIsNotNone:[18,1,1,""],id:[18,1,1,""],defaultTestResult:[18,1,1,""],assertListEqual:[18,1,1,""],debug:[18,1,1,""],assertNotIn:[18,1,1,""],countTestCases:[18,1,1,""],assertSetEqual:[18,1,1,""],assertGreaterEqual:[18,1,1,""]},"virtualsmartcard.cards.ePass.PassportSAM":{erase_SE:[24,1,1,""],store_SE:[24,1,1,""],perform_security_operation:[24,1,1,""],get_card_number:[24,1,1,""],set_asym_algorithm:[24,1,1,""],parse_SM_CAPDU:[24,1,1,""],restore_SE:[24,1,1,""],verify:[24,1,1,""],change_reference_data:[24,1,1,""],mutual_authenticate:[24,1,1,""],protect_result:[24,1,1,""],derive_key:[24,3,1,""],FSdecrypt:[24,1,1,""],generate_public_key_pair:[24,1,1,""],"_PassportSAM__computeKeys":[24,1,1,""],set_MF:[24,1,1,""],FSencrypt:[24,1,1,""],external_authenticate:[24,1,1,""],get_challenge:[24,1,1,""],internal_authenticate:[24,1,1,""],"_get_referenced_key":[24,1,1,""],manage_security_environment:[24,1,1,""]},"virtualsmartcard.tests.utils_test.TestUtils":{addTypeEqualityFunc:[28,1,1,""],tearDown:[28,1,1,""],assertNotEquals:[28,1,1,""],failIfAlmostEqual:[28,1,1,""],assertNotAlmostEquals:[28,1,1,""],assertNotAlmostEqual:[28,1,1,""],maxDiff:[28,4,1,""],"_getAssertEqualityFunc":[28,1,1,""],failureException:[28,4,1,""],fail:[28,1,1,""],assertEqual:[28,1,1,""],test_RAPDU:[28,1,1,""],shortDescription:[28,1,1,""],assertGreater:[28,1,1,""],"_classSetupFailed":[28,4,1,""],skipTest:[28,1,1,""],assertLess:[28,1,1,""],failUnlessEqual:[28,1,1,""],"_diffThreshold":[28,4,1,""],assertSequenceEqual:[28,1,1,""],"_addSkip":[28,1,1,""],"_truncateMessage":[28,1,1,""],assertDictContainsSubset:[28,1,1,""],assertRaisesRegexp:[28,1,1,""],addCleanup:[28,1,1,""],id:[28,1,1,""],assertRegexpMatches:[28,1,1,""],"_baseAssertEqual":[28,1,1,""],assertLessEqual:[28,1,1,""],tearDownClass:[28,5,1,""],assertItemsEqual:[28,1,1,""],failUnlessAlmostEqual:[28,1,1,""],assertAlmostEquals:[28,1,1,""],test_CAPDU:[28,1,1,""],assertTrue:[28,1,1,""],assertDictEqual:[28,1,1,""],run:[28,1,1,""],doCleanups:[28,1,1,""],assertIn:[28,1,1,""],failIfEqual:[28,1,1,""],assertRaises:[28,1,1,""],setUp:[28,1,1,""],failIf:[28,1,1,""],assertNotRegexpMatches:[28,1,1,""],assertFalse:[28,1,1,""],assertNotIsInstance:[28,1,1,""],assertTupleEqual:[28,1,1,""],"_formatMessage":[28,1,1,""],assertEquals:[28,1,1,""],assertIsNone:[28,1,1,""],assertIs:[28,1,1,""],assertIsInstance:[28,1,1,""],"_deprecate":[28,1,1,""],assertMultiLineEqual:[28,1,1,""],assert_:[28,1,1,""],failUnless:[28,1,1,""],assertAlmostEqual:[28,1,1,""],setUpClass:[28,5,1,""],failUnlessRaises:[28,1,1,""],assertNotEqual:[28,1,1,""],assertIsNot:[28,1,1,""],assertIsNotNone:[28,1,1,""],longMessage:[28,4,1,""],defaultTestResult:[28,1,1,""],assertListEqual:[28,1,1,""],debug:[28,1,1,""],assertNotIn:[28,1,1,""],countTestCases:[28,1,1,""],assertSetEqual:[28,1,1,""],assertGreaterEqual:[28,1,1,""]},virtualsmartcard:{CryptoUtils:[13,0,0,"-"],CardGenerator:[17,0,0,"-"],utils:[25,0,0,"-"],SEutils:[22,0,0,"-"],ConstantDefinitions:[23,0,0,"-"],SmartcardFilesystem:[26,0,0,"-"],SmartcardSAM:[9,0,0,"-"],TLVutils:[12,0,0,"-"],SWutils:[4,0,0,"-"],VirtualSmartcard:[30,0,0,"-"]},"virtualsmartcard.SmartcardFilesystem.TransparentStructureEF":{putdata:[26,1,1,""],shortfid:[26,4,1,""],select:[26,1,1,""],readbinary:[26,1,1,""],updatebinary:[26,1,1,""],encrypt:[26,1,1,""],erasebinary:[26,1,1,""],lifecycle:[26,4,1,""],fid:[26,4,1,""],bertlv_data:[26,4,1,""],datacoding:[26,4,1,""],parent:[26,4,1,""],decrypt:[26,1,1,""],getpath:[26,1,1,""],filedescriptor:[26,4,1,""],writerecord:[26,1,1,""],getdata:[26,1,1,""],data:[26,4,1,""],simpletlv_data:[26,4,1,""],updaterecord:[26,1,1,""],readrecord:[26,1,1,""],appendrecord:[26,1,1,""],writebinary:[26,1,1,""]},"virtualsmartcard.SEutils.Security_Environment":{compute_digital_signature:[22,1,1,""],encipher:[22,1,1,""],hash:[22,1,1,""],perform_security_operation:[22,1,1,""],verify_certificate:[22,1,1,""],"_set_SE":[22,1,1,""],parse_SM_CAPDU:[22,1,1,""],verify_digital_signature:[22,1,1,""],protect_response:[22,1,1,""],generate_public_key_pair:[22,1,1,""],decipher:[22,1,1,""],verify_cryptographic_checksum:[22,1,1,""],compute_cryptographic_checksum:[22,1,1,""],manage_security_environment:[22,1,1,""]},"virtualsmartcard.cards.cryptoflex":{CryptoflexSAM:[14,2,1,""],CryptoflexMF:[14,2,1,""],CryptoflexOS:[14,2,1,""],CryptoflexSE:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.DF":{putdata:[26,1,1,""],dfname:[26,4,1,""],append:[26,1,1,""],readbinary:[26,1,1,""],updatebinary:[26,1,1,""],encrypt:[26,1,1,""],decrypt:[26,1,1,""],lifecycle:[26,4,1,""],content:[26,4,1,""],select:[26,1,1,""],fid:[26,4,1,""],parent:[26,4,1,""],bertlv_data:[26,4,1,""],getpath:[26,1,1,""],filedescriptor:[26,4,1,""],writerecord:[26,1,1,""],getdata:[26,1,1,""],data:[26,4,1,""],simpletlv_data:[26,4,1,""],updaterecord:[26,1,1,""],remove:[26,1,1,""],writebinary:[26,1,1,""],readrecord:[26,1,1,""],appendrecord:[26,1,1,""],erasebinary:[26,1,1,""]},"virtualsmartcard.TLVutils":{encodebertlvDatalist:[12,6,1,""],tlv_find_tags:[12,6,1,""],decodeDiscretionaryDataObjects:[12,6,1,""],tlv_find_tag:[12,6,1,""],simpletlv_unpack:[12,6,1,""],decodeExtendedHeaderList:[12,6,1,""],bertlv_unpack:[12,6,1,""],encodeDiscretionaryDataObjects:[12,6,1,""],decodeHeaderList:[12,6,1,""],simpletlv_pack:[12,6,1,""],bertlv_pack:[12,6,1,""],encodeDataOffsetObjects:[12,6,1,""],tlv_unpack:[12,6,1,""],decodeTagList:[12,6,1,""],unpack:[12,6,1,""],decodeOffsetDataObjects:[12,6,1,""],pack:[12,6,1,""]},"virtualsmartcard.utils":{hexdump:[25,6,1,""],"_unformat_hexdump":[25,6,1,""],APDU:[25,2,1,""],R_APDU:[25,2,1,""],parse_status:[25,6,1,""],"_make_byte_property":[25,6,1,""],stringtoint:[25,6,1,""],inttostring:[25,6,1,""],C_APDU:[25,2,1,""]},"virtualsmartcard.SmartcardFilesystem.RecordStructureEF":{eraserecord:[26,1,1,""],updaterecord:[26,1,1,""],putdata:[26,1,1,""],hasSimpleTlv:[26,1,1,""],shortfid:[26,4,1,""],select:[26,1,1,""],readbinary:[26,1,1,""],recordpointer:[26,4,1,""],encrypt:[26,1,1,""],isCyclic:[26,1,1,""],hasFixedRecordSize:[26,1,1,""],erasebinary:[26,1,1,""],lifecycle:[26,4,1,""],fid:[26,4,1,""],bertlv_data:[26,4,1,""],datacoding:[26,4,1,""],"_RecordStructureEF__getRecordsByIdentifier":[26,1,1,""],maxrecordsize:[26,4,1,""],parent:[26,4,1,""],resetRecordPointer:[26,1,1,""],updatebinary:[26,1,1,""],getpath:[26,1,1,""],"_RecordStructureEF__getRecords":[26,1,1,""],records:[26,4,1,""],filedescriptor:[26,4,1,""],writerecord:[26,1,1,""],getdata:[26,1,1,""],simpletlv_data:[26,4,1,""],"_RecordStructureEF__getRecordsByNumber":[26,1,1,""],decrypt:[26,1,1,""],readrecord:[26,1,1,""],appendrecord:[26,1,1,""],writebinary:[26,1,1,""]},"virtualsmartcard.tests.CardGenerator_test":{ISO7816GeneratorTest:[1,2,1,""],TestNPACardGenerator:[1,2,1,""],CryptoflexGeneratorTest:[1,2,1,""]},"virtualsmartcard.SmartcardFilesystem.Record":{identifier:[26,4,1,""],data:[26,4,1,""]},"virtualsmartcard.cards":{cryptoflex:[14,0,0,"-"],ePass:[24,0,0,"-"],nPA:[7,0,0,"-"],Relay:[11,0,0,"-"],HandlerTest:[20,0,0,"-"]},"virtualsmartcard.tests.SmartcardSAM_test":{TestSmartcardSAM:[5,2,1,""]},"virtualsmartcard.cards.nPA":{NPAOS:[7,2,1,""],nPA_SAM:[7,2,1,""],nPA_AT_CRT:[7,2,1,""],nPA_SE:[7,2,1,""]},"virtualsmartcard.cards.ePass.ePass_SE":{compute_digital_signature:[24,1,1,""],encipher:[24,1,1,""],hash:[24,1,1,""],perform_security_operation:[24,1,1,""],verify_certificate:[24,1,1,""],"_set_SE":[24,1,1,""],parse_SM_CAPDU:[24,1,1,""],verify_digital_signature:[24,1,1,""],generate_public_key_pair:[24,1,1,""],decipher:[24,1,1,""],verify_cryptographic_checksum:[24,1,1,""],protect_response:[24,1,1,""],compute_cryptographic_checksum:[24,1,1,""],manage_security_environment:[24,1,1,""]},"virtualsmartcard.CryptoUtils":{operation_on_string:[13,6,1,""],hash:[13,6,1,""],get_cipher:[13,6,1,""],append_padding:[13,6,1,""],decrypt:[13,6,1,""],"_makesalt":[13,6,1,""],calculate_MAC:[13,6,1,""],get_cipher_keylen:[13,6,1,""],cipher:[13,6,1,""],encrypt:[13,6,1,""],get_cipher_blocklen:[13,6,1,""],crypto_checksum:[13,6,1,""],strip_padding:[13,6,1,""]},"virtualsmartcard.tests.CardGenerator_test.ISO7816GeneratorTest":{addTypeEqualityFunc:[1,1,1,""],tearDown:[1,1,1,""],assertNotEquals:[1,1,1,""],test_card_creation:[1,1,1,""],addCleanup:[1,1,1,""],assertIsNone:[1,1,1,""],"_getAssertEqualityFunc":[1,1,1,""],assertEqual:[1,1,1,""],id:[1,1,1,""],failureException:[1,4,1,""],assertRegexpMatches:[1,1,1,""],shortDescription:[1,1,1,""],assertGreater:[1,1,1,""],"_classSetupFailed":[1,4,1,""],skipTest:[1,1,1,""],assertLess:[1,1,1,""],assertMultiLineEqual:[1,1,1,""],assertSequenceEqual:[1,1,1,""],"_addSkip":[1,1,1,""],"_truncateMessage":[1,1,1,""],assertIn:[1,1,1,""],assertRaisesRegexp:[1,1,1,""],assertNotAlmostEqual:[1,1,1,""],assertNotRegexpMatches:[1,1,1,""],failUnlessRaises:[1,1,1,""],assertTupleEqual:[1,1,1,""],"_baseAssertEqual":[1,1,1,""],assertLessEqual:[1,1,1,""],tearDownClass:[1,5,1,""],assertItemsEqual:[1,1,1,""],failUnlessAlmostEqual:[1,1,1,""],assertAlmostEquals:[1,1,1,""],assertTrue:[1,1,1,""],assertDictEqual:[1,1,1,""],run:[1,1,1,""],doCleanups:[1,1,1,""],assertDictContainsSubset:[1,1,1,""],failIfEqual:[1,1,1,""],assertEquals:[1,1,1,""],setUp:[1,1,1,""],failIf:[1,1,1,""],assertNotAlmostEquals:[1,1,1,""],assertFalse:[1,1,1,""],assertNotIsInstance:[1,1,1,""],failIfAlmostEqual:[1,1,1,""],"_formatMessage":[1,1,1,""],maxDiff:[1,4,1,""],assertIs:[1,1,1,""],assertIsInstance:[1,1,1,""],assertRaises:[1,1,1,""],countTestCases:[1,1,1,""],test_get_and_set_card:[1,1,1,""],failUnlessEqual:[1,1,1,""],assert_:[1,1,1,""],fail:[1,1,1,""],failUnless:[1,1,1,""],assertAlmostEqual:[1,1,1,""],setUpClass:[1,5,1,""],assertListEqual:[1,1,1,""],assertIsNot:[1,1,1,""],card_type:[1,4,1,""],"_diffThreshold":[1,4,1,""],longMessage:[1,4,1,""],defaultTestResult:[1,1,1,""],assertNotEqual:[1,1,1,""],debug:[1,1,1,""],assertNotIn:[1,1,1,""],"_deprecate":[1,1,1,""],assertSetEqual:[1,1,1,""],assertGreaterEqual:[1,1,1,""],assertIsNotNone:[1,1,1,""]},"virtualsmartcard.SWutils":{SwError:[4,7,1,""]},"virtualsmartcard.SWutils.SwError":{message:[4,4,1,""],args:[4,4,1,""]},"virtualsmartcard.SmartcardFilesystem":{prettyprint_anything:[26,6,1,""],MF:[26,2,1,""],getfile_byrefdataobj:[26,6,1,""],get_indexes:[26,6,1,""],make_property:[26,6,1,""],DF:[26,2,1,""],EF:[26,2,1,""],RecordStructureEF:[26,2,1,""],walk:[26,6,1,""],write:[26,6,1,""],Record:[26,2,1,""],File:[26,2,1,""],isEqual:[26,6,1,""],TransparentStructureEF:[26,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSE":{compute_digital_signature:[14,1,1,""],encipher:[14,1,1,""],hash:[14,1,1,""],perform_security_operation:[14,1,1,""],verify_certificate:[14,1,1,""],"_set_SE":[14,1,1,""],parse_SM_CAPDU:[14,1,1,""],verify_digital_signature:[14,1,1,""],protect_response:[14,1,1,""],generate_public_key_pair:[14,1,1,""],decipher:[14,1,1,""],verify_cryptographic_checksum:[14,1,1,""],compute_cryptographic_checksum:[14,1,1,""],manage_security_environment:[14,1,1,""]},"virtualsmartcard.cards.ePass":{PassportSAM:[24,2,1,""],ePass_SE:[24,2,1,""]},"virtualsmartcard.CardGenerator.CardGenerator":{getCard:[17,1,1,""],readDatagroups:[17,1,1,""],"_CardGenerator__generate_nPA":[17,1,1,""],"_CardGenerator__generate_ePass":[17,1,1,""],generateCard:[17,1,1,""],"_CardGenerator__generate_iso_card":[17,1,1,""],setCard:[17,1,1,""],"_CardGenerator__generate_cryptoflex":[17,1,1,""]},"virtualsmartcard.cards.nPA.nPA_AT_CRT":{"_ControlReferenceTemplate__set_algo":[7,1,1,""],"_ControlReferenceTemplate__set_iv":[7,1,1,""],PACE_PUK:[7,4,1,""],PACE_MRZ:[7,4,1,""],parse_SE_config:[7,1,1,""],PACE_PIN:[7,4,1,""],to_string:[7,1,1,""],keyref_is_pin:[7,1,1,""],keyref_is_puk:[7,1,1,""],PACE_CAN:[7,4,1,""],"_ControlReferenceTemplate__replace_tag":[7,1,1,""],keyref_is_can:[7,1,1,""],keyref_is_mrz:[7,1,1,""],"_ControlReferenceTemplate__set_key":[7,1,1,""]},"virtualsmartcard.SEutils":{Security_Environment:[22,2,1,""],ControlReferenceTemplate:[22,2,1,""]},"virtualsmartcard.cards.Relay":{RelayOS:[11,2,1,""]},"virtualsmartcard.cards.HandlerTest":{HandlerTestOS:[20,2,1,""]},"virtualsmartcard.utils.APDU":{"_getdata":[25,1,1,""],data:[25,4,1,""],"_setdata":[25,1,1,""],"_setbyte":[25,1,1,""],"_format_parts":[25,1,1,""],"_deldata":[25,1,1,""]},"virtualsmartcard.SmartcardSAM":{get_referenced_cipher:[9,6,1,""],SAM:[9,2,1,""]},"virtualsmartcard.cards.HandlerTest.HandlerTestOS":{reset:[20,1,1,""],execute:[20,1,1,""],powerUp:[20,1,1,""],powerDown:[20,1,1,""],getATR:[20,1,1,""],"_HandlerTestOS__output_from_le":[20,1,1,""]},"virtualsmartcard.tests.CardGenerator_test.TestNPACardGenerator":{assertGreaterEqual:[1,1,1,""],addTypeEqualityFunc:[1,1,1,""],tearDown:[1,1,1,""],assertNotEquals:[1,1,1,""],assertGreater:[1,1,1,""],assertNotAlmostEquals:[1,1,1,""],addCleanup:[1,1,1,""],maxDiff:[1,4,1,""],failUnlessAlmostEqual:[1,1,1,""],"_getAssertEqualityFunc":[1,1,1,""],assertListEqual:[1,1,1,""],assertEqual:[1,1,1,""],fail:[1,1,1,""],failureException:[1,4,1,""],assertRegexpMatches:[1,1,1,""],shortDescription:[1,1,1,""],id:[1,1,1,""],assertDictContainsSubset:[1,1,1,""],assertLess:[1,1,1,""],failUnlessEqual:[1,1,1,""],"_diffThreshold":[1,4,1,""],test_readDatagroups:[1,1,1,""],"_addSkip":[1,1,1,""],"_truncateMessage":[1,1,1,""],assertNotIn:[1,1,1,""],assertRaisesRegexp:[1,1,1,""],assertNotAlmostEqual:[1,1,1,""],failUnlessRaises:[1,1,1,""],"_baseAssertEqual":[1,1,1,""],assertLessEqual:[1,1,1,""],tearDownClass:[1,5,1,""],doCleanups:[1,1,1,""],assertRaises:[1,1,1,""],run:[1,1,1,""],assertAlmostEquals:[1,1,1,""],assertTrue:[1,1,1,""],assertDictEqual:[1,1,1,""],test_card_creation:[1,1,1,""],failIfAlmostEqual:[1,1,1,""],assertItemsEqual:[1,1,1,""],assertIn:[1,1,1,""],failIfEqual:[1,1,1,""],assertEquals:[1,1,1,""],setUp:[1,1,1,""],failIf:[1,1,1,""],"_classSetupFailed":[1,4,1,""],assertNotRegexpMatches:[1,1,1,""],debug:[1,1,1,""],assertNotIsInstance:[1,1,1,""],assertTupleEqual:[1,1,1,""],"_formatMessage":[1,1,1,""],assertIsNone:[1,1,1,""],assertIs:[1,1,1,""],assertIsInstance:[1,1,1,""],countTestCases:[1,1,1,""],assertMultiLineEqual:[1,1,1,""],assert_:[1,1,1,""],failUnless:[1,1,1,""],assertAlmostEqual:[1,1,1,""],setUpClass:[1,5,1,""],skipTest:[1,1,1,""],assertIsNot:[1,1,1,""],assertSequenceEqual:[1,1,1,""],card_type:[1,4,1,""],assertIsNotNone:[1,1,1,""],longMessage:[1,4,1,""],defaultTestResult:[1,1,1,""],assertNotEqual:[1,1,1,""],assertFalse:[1,1,1,""],"_deprecate":[1,1,1,""],assertSetEqual:[1,1,1,""],test_get_and_set_card:[1,1,1,""]},"virtualsmartcard.utils.C_APDU":{Le:[25,4,1,""],Lc:[25,4,1,""],render:[25,1,1,""],ins:[25,4,1,""],parse:[25,1,1,""],"_setbyte":[25,1,1,""],le:[25,4,1,""],lc:[25,4,1,""],"_format_fields":[25,1,1,""],cla:[25,4,1,""],P2:[25,4,1,""],"case":[25,1,1,""],P1:[25,4,1,""],"_getdata":[25,1,1,""],effective_Le:[25,4,1,""],CLA:[25,4,1,""],"_setdata":[25,1,1,""],data:[25,4,1,""],"_deldata":[25,1,1,""],p2:[25,4,1,""],p1:[25,4,1,""],INS:[25,4,1,""],"_format_parts":[25,1,1,""]},"virtualsmartcard.cards.Relay.RelayOS":{reset:[11,1,1,""],execute:[11,1,1,""],powerUp:[11,1,1,""],powerDown:[11,1,1,""],getATR:[11,1,1,""],cleanup:[11,1,1,""]},"virtualsmartcard.utils.R_APDU":{parse:[25,1,1,""],SW2:[25,4,1,""],"_getdata":[25,1,1,""],render:[25,1,1,""],"_format_parts":[25,1,1,""],SW:[25,4,1,""],sw:[25,4,1,""],data:[25,4,1,""],"_setbyte":[25,1,1,""],SW1:[25,4,1,""],"_getsw":[25,1,1,""],"_setsw":[25,1,1,""],sw1:[25,4,1,""],"_setdata":[25,1,1,""],sw2:[25,4,1,""],"_format_fields":[25,1,1,""],"_deldata":[25,1,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSAM":{erase_SE:[14,1,1,""],pezorform_security_operation:[14,1,1,""],store_SE:[14,1,1,""],set_asym_algorithm:[14,1,1,""],perform_security_operation:[14,1,1,""],verify:[14,1,1,""],protect_result:[14,1,1,""],change_reference_data:[14,1,1,""],set_MF:[14,1,1,""],FSencrypt:[14,1,1,""],external_authenticate:[14,1,1,""],restore_SE:[14,1,1,""],parse_SM_CAPDU:[14,1,1,""],FSdecrypt:[14,1,1,""],generate_public_key_pair:[14,1,1,""],internal_authenticate:[14,1,1,""],"_get_referenced_key":[14,1,1,""],mutual_authenticate:[14,1,1,""],get_challenge:[14,1,1,""],get_card_number:[14,1,1,""],manage_security_environment:[14,1,1,""]},"virtualsmartcard.VirtualSmartcard.Iso7816OS":{reset:[30,1,1,""],formatResult:[30,1,1,""],mf:[30,4,1,""],SAM:[30,4,1,""],powerDown:[30,1,1,""],getATR:[30,1,1,""],makeThirdSoftwareFunctionTable:[30,3,1,""],getResponse:[30,1,1,""],powerUp:[30,1,1,""],execute:[30,1,1,""],seekable:[30,3,1,""],makeATR:[30,3,1,""]},"virtualsmartcard.cards.nPA.nPA_SAM":{erase_SE:[7,1,1,""],store_SE:[7,1,1,""],perform_security_operation:[7,1,1,""],get_card_number:[7,1,1,""],set_asym_algorithm:[7,1,1,""],parse_SM_CAPDU:[7,1,1,""],restore_SE:[7,1,1,""],verify:[7,1,1,""],reset_retry_counter:[7,1,1,""],change_reference_data:[7,1,1,""],mutual_authenticate:[7,1,1,""],general_authenticate:[7,1,1,""],protect_result:[7,1,1,""],FSdecrypt:[7,1,1,""],generate_public_key_pair:[7,1,1,""],set_MF:[7,1,1,""],FSencrypt:[7,1,1,""],external_authenticate:[7,1,1,""],get_challenge:[7,1,1,""],internal_authenticate:[7,1,1,""],"_get_referenced_key":[7,1,1,""],manage_security_environment:[7,1,1,""]},"virtualsmartcard.tests.CardGenerator_test.CryptoflexGeneratorTest":{addTypeEqualityFunc:[1,1,1,""],tearDown:[1,1,1,""],assertNotEquals:[1,1,1,""],assertIn:[1,1,1,""],test_card_creation:[1,1,1,""],assertNotAlmostEqual:[1,1,1,""],maxDiff:[1,4,1,""],failUnlessAlmostEqual:[1,1,1,""],"_truncateMessage":[1,1,1,""],assertEqual:[1,1,1,""],fail:[1,1,1,""],failureException:[1,4,1,""],assertRegexpMatches:[1,1,1,""],shortDescription:[1,1,1,""],id:[1,1,1,""],"_classSetupFailed":[1,4,1,""],skipTest:[1,1,1,""],assertLess:[1,1,1,""],failUnlessEqual:[1,1,1,""],assertSequenceEqual:[1,1,1,""],"_addSkip":[1,1,1,""],test_get_and_set_card:[1,1,1,""],assertNotIn:[1,1,1,""],assertRaisesRegexp:[1,1,1,""],addCleanup:[1,1,1,""],assertGreater:[1,1,1,""],"_baseAssertEqual":[1,1,1,""],run:[1,1,1,""],tearDownClass:[1,5,1,""],assertItemsEqual:[1,1,1,""],assertEquals:[1,1,1,""],assertLessEqual:[1,1,1,""],assertAlmostEquals:[1,1,1,""],assertTrue:[1,1,1,""],assertDictEqual:[1,1,1,""],failIfAlmostEqual:[1,1,1,""],doCleanups:[1,1,1,""],assertDictContainsSubset:[1,1,1,""],failIfEqual:[1,1,1,""],assertRaises:[1,1,1,""],setUp:[1,1,1,""],failIf:[1,1,1,""],assertNotRegexpMatches:[1,1,1,""],assertFalse:[1,1,1,""],assertNotIsInstance:[1,1,1,""],assertTupleEqual:[1,1,1,""],"_formatMessage":[1,1,1,""],assertIsNone:[1,1,1,""],assertIs:[1,1,1,""],assertIsInstance:[1,1,1,""],"_deprecate":[1,1,1,""],assertNotAlmostEquals:[1,1,1,""],assertMultiLineEqual:[1,1,1,""],assert_:[1,1,1,""],failUnless:[1,1,1,""],assertAlmostEqual:[1,1,1,""],setUpClass:[1,5,1,""],failUnlessRaises:[1,1,1,""],assertNotEqual:[1,1,1,""],assertIsNot:[1,1,1,""],card_type:[1,4,1,""],"_diffThreshold":[1,4,1,""],"_getAssertEqualityFunc":[1,1,1,""],longMessage:[1,4,1,""],defaultTestResult:[1,1,1,""],assertListEqual:[1,1,1,""],debug:[1,1,1,""],countTestCases:[1,1,1,""],assertSetEqual:[1,1,1,""],assertGreaterEqual:[1,1,1,""],assertIsNotNone:[1,1,1,""]},"virtualsmartcard.CardGenerator":{CardGenerator:[17,2,1,""]},"virtualsmartcard.SmartcardFilesystem.EF":{updaterecord:[26,1,1,""],putdata:[26,1,1,""],shortfid:[26,4,1,""],select:[26,1,1,""],readbinary:[26,1,1,""],updatebinary:[26,1,1,""],encrypt:[26,1,1,""],erasebinary:[26,1,1,""],simpletlv_data:[26,4,1,""],fid:[26,4,1,""],datacoding:[26,4,1,""],parent:[26,4,1,""],bertlv_data:[26,4,1,""],getpath:[26,1,1,""],filedescriptor:[26,4,1,""],writerecord:[26,1,1,""],getdata:[26,1,1,""],lifecycle:[26,4,1,""],decrypt:[26,1,1,""],readrecord:[26,1,1,""],appendrecord:[26,1,1,""],writebinary:[26,1,1,""]},"virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM":{addTypeEqualityFunc:[5,1,1,""],test_counter_decrement:[5,1,1,""],tearDown:[5,1,1,""],assertNotEquals:[5,1,1,""],assertGreater:[5,1,1,""],assertNotAlmostEquals:[5,1,1,""],addCleanup:[5,1,1,""],maxDiff:[5,4,1,""],failUnlessAlmostEqual:[5,1,1,""],"_getAssertEqualityFunc":[5,1,1,""],assertListEqual:[5,1,1,""],failureException:[5,4,1,""],fail:[5,1,1,""],run:[5,1,1,""],assertRegexpMatches:[5,1,1,""],shortDescription:[5,1,1,""],failUnlessRaises:[5,1,1,""],"_classSetupFailed":[5,4,1,""],skipTest:[5,1,1,""],assertLess:[5,1,1,""],assertDictContainsSubset:[5,1,1,""],assertSequenceEqual:[5,1,1,""],"_addSkip":[5,1,1,""],"_truncateMessage":[5,1,1,""],assertIn:[5,1,1,""],assertRaisesRegexp:[5,1,1,""],assertNotAlmostEqual:[5,1,1,""],id:[5,1,1,""],"_baseAssertEqual":[5,1,1,""],assertLessEqual:[5,1,1,""],tearDownClass:[5,5,1,""],test_incorrect_pin:[5,1,1,""],assertRaises:[5,1,1,""],test_external_authenticate:[5,1,1,""],assertAlmostEquals:[5,1,1,""],assertTrue:[5,1,1,""],assertDictEqual:[5,1,1,""],failIfAlmostEqual:[5,1,1,""],doCleanups:[5,1,1,""],assertNotIn:[5,1,1,""],failIfEqual:[5,1,1,""],assertEquals:[5,1,1,""],test_internal_authenticate:[5,1,1,""],assertNotRegexpMatches:[5,1,1,""],debug:[5,1,1,""],assertNotIsInstance:[5,1,1,""],assertTupleEqual:[5,1,1,""],"_formatMessage":[5,1,1,""],assertIsNone:[5,1,1,""],assertIs:[5,1,1,""],assertIsInstance:[5,1,1,""],"_deprecate":[5,1,1,""],failUnlessEqual:[5,1,1,""],assert_:[5,1,1,""],failUnless:[5,1,1,""],assertAlmostEqual:[5,1,1,""],setUpClass:[5,5,1,""],assertNotEqual:[5,1,1,""],assertIsNot:[5,1,1,""],assertMultiLineEqual:[5,1,1,""],"_diffThreshold":[5,4,1,""],test_security_environment:[5,1,1,""],longMessage:[5,4,1,""],defaultTestResult:[5,1,1,""],assertIsNotNone:[5,1,1,""],failIf:[5,1,1,""],assertFalse:[5,1,1,""],setUp:[5,1,1,""],countTestCases:[5,1,1,""],assertEqual:[5,1,1,""],assertSetEqual:[5,1,1,""],assertGreaterEqual:[5,1,1,""],assertItemsEqual:[5,1,1,""]},"virtualsmartcard.tests":{SmartcardSAM_test:[5,0,0,"-"],CryptoUtils_test:[18,0,0,"-"],utils_test:[28,0,0,"-"],CardGenerator_test:[1,0,0,"-"]},"virtualsmartcard.tests.CryptoUtils_test":{TestCryptoUtils:[18,2,1,""]},"virtualsmartcard.SmartcardSAM.SAM":{erase_SE:[9,1,1,""],perform_security_operation:[9,1,1,""],store_SE:[9,1,1,""],FSencrypt:[9,1,1,""],change_reference_data:[9,1,1,""],verify:[9,1,1,""],protect_result:[9,1,1,""],parse_SM_CAPDU:[9,1,1,""],set_MF:[9,1,1,""],set_asym_algorithm:[9,1,1,""],external_authenticate:[9,1,1,""],get_challenge:[9,1,1,""],FSdecrypt:[9,1,1,""],generate_public_key_pair:[9,1,1,""],internal_authenticate:[9,1,1,""],"_get_referenced_key":[9,1,1,""],mutual_authenticate:[9,1,1,""],restore_SE:[9,1,1,""],get_card_number:[9,1,1,""],manage_security_environment:[9,1,1,""]},"virtualsmartcard.cards.nPA.nPA_SE":{general_authenticate:[7,1,1,""],perform_security_operation:[7,1,1,""],"_nPA_SE__eac_pace_step2":[7,1,1,""],parse_SM_CAPDU:[7,1,1,""],protect_response:[7,1,1,""],"_nPA_SE__pack_general_authenticate":[7,3,1,""],verify_cryptographic_checksum:[7,1,1,""],verify_certificate:[7,1,1,""],"_set_SE":[7,1,1,""],compute_digital_signature:[7,1,1,""],eac_step:[7,4,1,""],hash:[7,1,1,""],"_nPA_SE__eac_ca":[7,1,1,""],"_nPA_SE__unpack_general_authenticate":[7,3,1,""],generate_public_key_pair:[7,1,1,""],decipher:[7,1,1,""],"_nPA_SE__eac_pace_step3":[7,1,1,""],"_nPA_SE__eac_pace_step1":[7,1,1,""],compute_cryptographic_checksum:[7,1,1,""],"_nPA_SE__eac_pace_step4":[7,1,1,""],encipher:[7,1,1,""],external_authenticate:[7,1,1,""],verify_digital_signature:[7,1,1,""],manage_security_environment:[7,1,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexOS":{reset:[14,1,1,""],execute:[14,1,1,""],mf:[14,4,1,""],SAM:[14,4,1,""],makeATR:[14,3,1,""],formatResult:[14,1,1,""],getATR:[14,1,1,""],makeThirdSoftwareFunctionTable:[14,3,1,""],getResponse:[14,1,1,""],powerUp:[14,1,1,""],seekable:[14,3,1,""],powerDown:[14,1,1,""]}},titleterms:{gadgetf:8,creat:3,less:[21,2,27],libnfc:0,smartcardfilesystem:26,utils_test:28,packag:[16,29,15],unix:[6,8,0],handlertest:20,opensc:8,cryptoutil:13,linux:[6,8,0],download:[8,19,2,27,0,6,21],instal:[8,0,2,27,6,21],librari:10,epass:24,usb:8,hint:[8,0],similar:[6,8,0],cardgenerator_test:1,configur:6,question:[8,0,2,27,6,21],written:6,virtual:[6,19,3],contact:[21,2,27],note:[8,0,2,27,6,21],window:6,other:3,interfac:0,build:6,reader:[8,21],test:29,android:[21,2,0],document:[19,3],contactless:0,modul:[22,23,9,18,25,11,28,14,12,13,1,30,4,5,24,20,26,17,7],smart:[8,10,0,19,2,27,3,6,21],architectur:19,tizen:27,run:6,ccid:8,python:6,usag:[8,0],npa:[7,10],smartwatch:27,cardgener:17,cryptoflex:14,mac:6,virtualsmartcard:[30,15],seutil:22,relai:[11,0],cryptoutils_test:18,compliant:8,vpicc:6,card:[8,10,0,19,2,27,16,3,6,21],vpcd:6,util:25,like:3,phone:[21,2],remot:21,type:3,middlewar:0,emul:[6,8,2,27,0],smartcardsam:9,exampl:3,iso:3,tlvutil:12,constantdefinit:23,smartcardsam_test:5,implement:3,refer:[8,19,2,27,0,6,21],swutil:4,welcom:19}})
\ No newline at end of file
diff --git a/docs/virtualsmartcard/README.html b/docs/virtualsmartcard/README.html
index 00eb360..9e5a5de 100644
--- a/docs/virtualsmartcard/README.html
+++ b/docs/virtualsmartcard/README.html
@@ -5,7 +5,7 @@
-
Virtual Smart Card — vsmartcard 2017-01-08 documentation
+
Virtual Smart Card — vsmartcard 2017-01-16 documentation
@@ -15,7 +15,7 @@
-
+
@@ -38,7 +38,7 @@
-
+
Virtual Smart Card
Remote Smart Card Reader
Android Smart Card Emulator
+
Tizen Smart Card Emulator
PC/SC Relay
USB CCID Emulator
@@ -203,11 +204,11 @@ the PC/SC API. By default
vpcd o
need to run on the same machine as the
vpcd , they can connect over the
internet for example.
Although the Virtual Smart Card is a software emulator, you can use
-PC/SC Relay to make it accessible to an external contact-less smart card
+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 .
+
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
PC/SC. This allows accessing vpicc without PCSC-Lite. Our PC/SC
-implementation acts as replacement for libpcsclite which can lead to
+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.
For example, an email signing application can use the PKCS#11 interface of
OpenSC, which is linked against our PC/SC implementation. Then an Android App
-(e.g. Remote Smart Card Reader ) can connect as vpicc delegating all requests and
+(e.g. Remote Smart Card Reader ) can connect as vpicc delegating all requests and
responses via NFC to a contact-less smart card that signs the mail.
Depending on your usage of the vpicc you may need to install the following:
Python
-pyscard (relaying a local smart card with --type=relay )
+pyscard (relaying a local smart card with --type=relay )
PyCrypto , PBKDF2 , PIL , readline or PyReadline (emulation of electronic
-passport with --type=ePass )
-OpenPACE (emulation of German identity card with --type=nPA )
+passport with --type=ePass )
+OpenPACE (emulation of German identity card with --type=nPA )
libqrencode (to print a QR code on the command line for vpcd-config ; an
URL will be printed if libqrencode is not available)
@@ -275,14 +276,14 @@ still available on
Installation on Linux, Unix and similar
The Virtual Smart Card uses the GNU Build System to compile and install. If you are
-unfamiliar with it, please have a look at INSTALL . If you can not find
+unfamiliar with it, please have a look at INSTALL . If you can not find
it, you are probably working bleeding edge in the repository. Run the
-following command in virtualsmartcard to get the missing standard
+following command in virtualsmartcard to get the missing standard
auxiliary files:
autoreconf --verbose --install
-To configure (configure --help lists possible options), build and
+
To configure (configure –help lists possible options), build and
install the Virtual Smart Card now do the following:
./configure --sysconfdir= /etc
make
@@ -293,12 +294,12 @@ make install
Building and installing vpcd on Mac OS X
Mac OS X 10.9 and earlier is using PCSC-Lite as smart card service which allows
-using the standard routine for installation on Unix .
+using the standard routine for
installation on Unix .
Mac OS X 10.10 (and later) ships with a proprietary implementation of the PC/SC
layer instead of with PCSC-Lite. As far as we know, this means that smart card
readers must be USB devices instead of directly allowing a more generic type of
reader. To make vpcd work we simply configure it to pretend being a USB smart
-card reader with an Ìnfo.plist :
+card reader with an
Ìnfo.plist :
./configure --prefix= / --enable-infoplist
make
make install
@@ -327,18 +328,18 @@ git submodule update --init --recursive
In Visual Studio open vpcd ‘s solution
-virtualsmartcard\win32\BixVReader.sln and ensure with the
+virtualsmartcard\win32\BixVReader.sln and ensure with the
configuration manager, that the project is built for your platform (i.e.
-x64 or x82 ).
+x64 or x82 ).
-
If you can successfully Build the solution , you can find
-the installer (BixVReaderInstaller.msi ) in
-virtualsmartcard\win32\BixVReaderInstaller\bin\*Release
+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
+
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 .
+Install this driver software anyway .
For debugging vpcd and building the driver with an older version of Visual
@@ -351,35 +352,35 @@ Reader for det
Using the Virtual Smart Card
The protocol between vpcd and vpicc as well as details on extending vpicc
-with a different card emulator are covered in Creating a Virtual Smart Card . Here
+with a different card emulator are covered in Creating a Virtual Smart Card . Here
we will focus on configuring and running the provided modules.
Configuring vpcd on Unix
The configuration file of vpcd is usually placed into
-/etc/reader.conf.d/ . For older versions of PCSC-Lite you
+/etc/reader.conf.d/ . For older versions of PCSC-Lite you
need to run update-reader.conf to update pcscd ‘s main
configuration file. The PC/SC daemon should read it and load the
vpcd on startup. In debug mode pcscd -f -d should say something
like “Attempting startup of Virtual PCD” when loading vpcd .
By default, vpcd opens a socket for vpicc and waits for incoming
-connections. The port to open should be specified in CHANNELID and
-DEVICENAME :
+connections. The port to open should be specified in
CHANNELID and
+
DEVICENAME :
FRIENDLYNAME "Virtual PCD"
DEVICENAME /dev/null:0x8C7B
LIBPATH /usr/lib/pcsc/drivers/serial/libifdvpcd.so
CHANNELID 0x8C7B
-
If the first part of the DEVICENAME is different from /dev/null , vpcd
+
If the first part of the DEVICENAME is different from /dev/null , vpcd
will use this string as a hostname for connecting to a waiting vpicc . vpicc
-needs to be started with --reversed in this case.
+needs to be started with
--reversed in this case.
Configuring vpcd on Mac OS X
Mac OS X 10.9 and earlier is using PCSC-Lite as smart card service which allows
-using the standard routine for configuration on Unix .
+using the standard routine for
configuration on Unix .
On Mac OS X 10.10 you should have configured the generation of
-Info.plist at compile time. Now do the following for registering vpcd
+Info.plist at compile time. Now do the following for registering vpcd
as USB device:
Choose an USB device (e.g. mass storage, phone, mouse, ...), which will be
@@ -390,7 +391,7 @@ used to start vpcd . Plug it into
-
Change /usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Info.plist
+
Change /usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Info.plist
to match your product and vendor ID:
@@ -446,8 +447,8 @@ to match your product and vendor ID:
</plist>
-Note that ifdFriendlyName can be used in the same way as DEVICENAME
-described above .
+Note that ifdFriendlyName can be used in the same way as DEVICENAME
+described above .
Restart the PC/SC service:
sudo killall -SIGKILL -m .*com.apple.ifdreader
@@ -460,13 +461,13 @@ stopped when you unplug the device.
Configuring vpcd on Windows
-
The configuration file BixVReader.ini of vpcd is installed to
-C:\Windows (%SystemRoot% ). The user mode device driver
+
The configuration file BixVReader.ini of vpcd is installed to
+C:\Windows (%SystemRoot% ). The user mode device driver
framework (WUDFHost.exe ) should read it automatically and load the
vpcd on startup. The Windows Device Manager mmc devmgmt.msc should
-list the Bix Virtual Smart Card Reader .
+list the
Bix Virtual Smart Card Reader .
vpcd opens a socket for vpicc and waits for incoming connections. The port
-to open should be specified in TCP_PORT :
+to open should be specified in
TCP_PORT :
[ Driver]
NumReaders = 3
@@ -491,7 +492,7 @@ to open should be specified in
Currently it is not possible to configure the Windows driver to connect to an
-vpicc running with --reversed .
+
vpicc running with
--reversed .
Running vpicc
@@ -499,7 +500,7 @@ to open should be specified in
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.
-The vpicc option --help gives an overview about the command line
+
The vpicc option --help gives an overview about the command line
switches:
usage: vicc [-h] [-t {iso7816,cryptoflex,ePass,nPA,relay,handler_test}] [-v]
[-f FILE] [-H HOSTNAME] [-P PORT] [-R] [--version]
@@ -570,9 +571,9 @@ Report bugs to https://github.com/frankmorgner/vsmartcard/issues
New in version 0.7: We implemented vpcd-config which tries to guess the local IP
address and outputs vpcd ‘s configuration. vpicc ‘s options should be
-chosen accordingly (--hostname and --port )
+chosen accordingly (--hostname and --port )
vpcd-config also prints a QR code for configuration of the
-Remote Smart Card Reader .
+
Remote Smart Card Reader .
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
diff --git a/docs/virtualsmartcard/api.html b/docs/virtualsmartcard/api.html
index 2ae088a..56cf45b 100644
--- a/docs/virtualsmartcard/api.html
+++ b/docs/virtualsmartcard/api.html
@@ -5,7 +5,7 @@
- Creating a Virtual Smart Card — vsmartcard 2017-01-08 documentation
+ Creating a Virtual Smart Card — vsmartcard 2017-01-16 documentation
@@ -15,7 +15,7 @@
-
+
@@ -38,7 +38,7 @@
-
+
Virtual Smart Card
Remote Smart Card Reader
Android Smart Card Emulator
+
Tizen Smart Card Emulator
PC/SC Relay
USB CCID Emulator
@@ -157,8 +158,8 @@
Creating a Virtual Smart Card
-
vpcd communicates over a socked with vpicc usually on port 0x8C7B
-(configurably via /etc/reader.conf.d/vpcd ). So you can connect
+
vpcd communicates over a socked with vpicc usually on port 0x8C7B
+(configurably via /etc/reader.conf.d/vpcd ). So you can connect
virtually any program to the virtual smart card reader, as long as you respect
the following protocol:
@@ -179,29 +180,29 @@ the following protocol:
-0x00 0x01
-0x00 (Power Off)
+0x00 0x01
+0x00 (Power Off)
(No Response)
-0x00 0x01
-0x01 (Power On)
+0x00 0x01
+0x01 (Power On)
(No Response)
-0x00 0x01
-0x02 (Reset)
+0x00 0x01
+0x02 (Reset)
(No Response)
-0x00 0x01
-0x04 (Get ATR)
-0xXX 0xXX
+0x00 0x01
+0x04 (Get ATR)
+0xXX 0xXX
(ATR)
-0xXX 0xXX
+0xXX 0xXX
(APDU)
-0xXX 0xXX
+0xXX 0xXX
(R-APDU)
@@ -255,14 +256,14 @@ ISO 7816. But as for most complex software you need to know where you need to
hook into. Here we only want to give an overview to the design, the complete
details can be found in section Documentation to Virtual Smart Card .
Back to the cryptoflex example.
-VirtualICC provides the connection
+VirtualICC provides the connection
to the virtual smart card reader. It fetches an APDU and other requests from
-the vpcd . In VirtualICC an APDU
+the vpcd . In VirtualICC an APDU
is only a buffer that is forwarded to the smart card OS. First we modify
-VirtualICC to recognize a new type
-"cryptoflex" and to load
-CryptoflexOS . The
-CardGenerator is used to create a file system and a
+VirtualICC to recognize a new type
+"cryptoflex" and to load
+CryptoflexOS . The
+CardGenerator is used to create a file system and a
SAM specific to the cryptoflex (we come back to this later).
def __init__ ( self , datasetfile , card_type , host , port ,
readernum = None , ef_cardsecurity = None , ef_cardaccess = None ,
@@ -359,7 +360,7 @@ is only a buffer that is forwarded to the smart card OS. First we modify
Responses from our cryptoflex card look the same as for the 7816 card. But when
a command was successfull (or not) there is a little difference in what is
returned. So we need to edit
-formatResult , which is
+formatResult , which is
called to encode the SWs and the resulting data.
def formatResult ( self , ins , le , data , sw ):
if le == 0 and len ( data ):
@@ -383,15 +384,15 @@ called to encode the SWs and the
Note that this also requires some insight knowledge about how
-Iso7816OS works.
+Iso7816OS works.
The previously created SAM handles keys, encryption, secure messaging and so
on (we will not go into more details here). The file system creates, selects
and reads contents of files or directories. File handling for our cryptoflex
card is similar to ISO 7816, but the meaning of P1, P2 and the APDU data is
completely different when creating a file on the smart card. So we derive
-CryptoflexMF from
-MF and modify
-create to our needs.
+CryptoflexMF from
+MF and modify
+create to our needs.
def create ( p1 , p2 , data ):
if data [ 0 : 2 ] != " \xff\xff " :
@@ -445,11 +446,11 @@ your modifications...
magic that is done while parsing a buffer (an APDU ). As example we will
connect to an other smart card using PC/SC and forward it to vpcd .
As before with the cryptoflex card, we let
-VirtualICC recognize the new type
-"relay" . RelayOS overwrites all
+VirtualICC recognize the new type
+"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
+SmartcardOS . Its functions correspond
+to the commands sent by vpcd . If you know how to use
pyscard then the rest is pretty straight
forward, but see yourself...
class RelayOS ( SmartcardOS ):
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.CardGenerator.html b/docs/virtualsmartcard/api/virtualsmartcard.CardGenerator.html
index 0d3a615..e515e1c 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.CardGenerator.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.CardGenerator.html
@@ -5,7 +5,7 @@
- CardGenerator Module — vsmartcard 2017-01-08 documentation
+ CardGenerator Module — vsmartcard 2017-01-16 documentation
@@ -15,7 +15,7 @@
-
+
@@ -39,7 +39,7 @@
-
+
Virtual Smart Card
Remote Smart Card Reader
Android Smart Card Emulator
+
Tizen Smart Card Emulator
PC/SC Relay
USB CCID Emulator
@@ -158,20 +159,20 @@
-class virtualsmartcard.CardGenerator.CardGenerator( card_type=None , sam=None , mf=None )
-Bases: object
+class virtualsmartcard.CardGenerator. CardGenerator ( card_type=None , sam=None , mf=None )
+Bases: object
This class is used to generate the SAM and filesystem for the
different supported card types. It is also able used for persistent storage
(in encrypted form) of the card on disks.
-_CardGenerator__generate_cryptoflex( )
+_CardGenerator__generate_cryptoflex ( )
Generate the Filesystem and SAM of a cryptoflex card
-_CardGenerator__generate_ePass( )
+_CardGenerator__generate_ePass ( )
Generate the MF and SAM of an ICAO passport. This method is
responsible for generating the filesystem and filling it with content.
Therefore it must interact with the user by prompting for the MRZ and
@@ -180,35 +181,35 @@ optionally for the path to a photo.
-_CardGenerator__generate_iso_card( )
+_CardGenerator__generate_iso_card ( )
-_CardGenerator__generate_nPA( )
+_CardGenerator__generate_nPA ( )
-generateCard( )
+generateCard ( )
Generate a new card
-getCard( )
+getCard ( )
Get the MF and SAM from the current card
-readDatagroups( datasetfile )
+readDatagroups ( datasetfile )
Read Datagroups from file
-setCard( mf=None , sam=None )
+setCard ( mf=None , sam=None )
Set the MF and SAM of the current card
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.html b/docs/virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.html
index 4c0b8a0..c29a331 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.html
@@ -5,7 +5,7 @@
- ConstantDefinitions Module — vsmartcard 2017-01-08 documentation
+ ConstantDefinitions Module — vsmartcard 2017-01-16 documentation
@@ -15,7 +15,7 @@
-
+
@@ -39,7 +39,7 @@
-
+
Virtual Smart Card
Remote Smart Card Reader
Android Smart Card Emulator
+Tizen Smart Card Emulator
PC/SC Relay
USB CCID Emulator
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.CryptoUtils.html b/docs/virtualsmartcard/api/virtualsmartcard.CryptoUtils.html
index ea407b0..ad2756a 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.CryptoUtils.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.CryptoUtils.html
@@ -5,7 +5,7 @@
- CryptoUtils Module — vsmartcard 2017-01-08 documentation
+ CryptoUtils Module — vsmartcard 2017-01-16 documentation
@@ -15,7 +15,7 @@
-
+
@@ -39,7 +39,7 @@
-
+
Virtual Smart Card
Remote Smart Card Reader
Android Smart Card Emulator
+Tizen Smart Card Emulator
PC/SC Relay
USB CCID Emulator
@@ -152,14 +153,14 @@
CryptoUtils Module
-virtualsmartcard.CryptoUtils._makesalt( )
+virtualsmartcard.CryptoUtils. _makesalt ( )
Return a 48-bit pseudorandom salt for crypt().
This function is not suitable for generating cryptographic secrets.
-virtualsmartcard.CryptoUtils.append_padding( blocklen , data , padding_class=1 )
+virtualsmartcard.CryptoUtils. append_padding ( blocklen , data , padding_class=1 )
Append padding to the data.
Length of padding depends on length of data and the block size of the
specified encryption algorithm.
@@ -168,13 +169,13 @@ Different types of padding may be selected via the padding_class parameter
-virtualsmartcard.CryptoUtils.calculate_MAC( session_key , message , iv='\x00\x00\x00\x00\x00\x00\x00\x00' )
+virtualsmartcard.CryptoUtils. calculate_MAC ( session_key , message , iv='\x00\x00\x00\x00\x00\x00\x00\x00' )
Cyberflex MAC is the last Block of the input encrypted with DES3-CBC
-virtualsmartcard.CryptoUtils.cipher( do_encrypt , cipherspec , key , data , iv=None )
+virtualsmartcard.CryptoUtils. cipher ( do_encrypt , cipherspec , key , data , iv=None )
Do a cryptographic operation.
operation = do_encrypt ? encrypt : decrypt,
cipherspec must be of the form “cipher-mode”, or “cipher”
@@ -182,7 +183,7 @@ cipherspec must be of the form “cipher-mode”, or “cipher”
-virtualsmartcard.CryptoUtils.crypto_checksum( algo , key , data , iv=None , ssc=None )
+virtualsmartcard.CryptoUtils. crypto_checksum ( algo , key , data , iv=None , ssc=None )
Compute various types of cryptographic checksums.
@@ -206,42 +207,42 @@ Only used by the “CC” algorithm
-virtualsmartcard.CryptoUtils.decrypt( cipherspec , key , data , iv=None )
+virtualsmartcard.CryptoUtils. decrypt ( cipherspec , key , data , iv=None )
-virtualsmartcard.CryptoUtils.encrypt( cipherspec , key , data , iv=None )
+virtualsmartcard.CryptoUtils. encrypt ( cipherspec , key , data , iv=None )
-virtualsmartcard.CryptoUtils.get_cipher( cipherspec , key , iv=None )
+virtualsmartcard.CryptoUtils. get_cipher ( cipherspec , key , iv=None )
-virtualsmartcard.CryptoUtils.get_cipher_blocklen( cipherspec )
+virtualsmartcard.CryptoUtils. get_cipher_blocklen ( cipherspec )
-virtualsmartcard.CryptoUtils.get_cipher_keylen( cipherspec )
+virtualsmartcard.CryptoUtils. get_cipher_keylen ( cipherspec )
-virtualsmartcard.CryptoUtils.hash( hashmethod , data )
+virtualsmartcard.CryptoUtils. hash ( hashmethod , data )
-virtualsmartcard.CryptoUtils.operation_on_string( string1 , string2 , op )
+virtualsmartcard.CryptoUtils. operation_on_string ( string1 , string2 , op )
-virtualsmartcard.CryptoUtils.strip_padding( blocklen , data , padding_class=1 )
+virtualsmartcard.CryptoUtils. strip_padding ( blocklen , data , padding_class=1 )
Strip the padding of decrypted data. Returns data without padding
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.SEutils.html b/docs/virtualsmartcard/api/virtualsmartcard.SEutils.html
index 3546430..ad960a3 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.SEutils.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.SEutils.html
@@ -5,7 +5,7 @@
- SEutils Module — vsmartcard 2017-01-08 documentation
+ SEutils Module — vsmartcard 2017-01-16 documentation
@@ -15,7 +15,7 @@
-
+
@@ -39,7 +39,7 @@
-
+
Virtual Smart Card
Remote Smart Card Reader
Android Smart Card Emulator
+Tizen Smart Card Emulator
PC/SC Relay
USB CCID Emulator
@@ -159,7 +160,7 @@
-class virtualsmartcard.SEutils.ControlReferenceTemplate( tag , config='' )
+class virtualsmartcard.SEutils. ControlReferenceTemplate ( tag , config='' )
Control Reference Templates are used to configure the Security
Environments. They specify which algorithms to use in which mode of
operation and with which keys. There are six different types of Control
@@ -167,7 +168,7 @@ Reference Template:
HT, AT, KT, CCT, DST, CT-sym, CT-asym.
-_ControlReferenceTemplate__replace_tag( tag , data )
+_ControlReferenceTemplate__replace_tag ( tag , data )
Adjust the config string using a given tag, value combination. If the
config string already contains a tag, value pair for the given tag,
replace it. Otherwise append tag, length and value to the config
@@ -176,7 +177,7 @@ string.
-_ControlReferenceTemplate__set_algo( data )
+_ControlReferenceTemplate__set_algo ( data )
Set the algorithm to be used by this CRT. The algorithms are specified
in a global dictionary. New cards may add or modify this table in order
to support new or different algorithms.
@@ -192,17 +193,17 @@ to support new or different algorithms.
-_ControlReferenceTemplate__set_iv( tag , length , value )
+_ControlReferenceTemplate__set_iv ( tag , length , value )
-_ControlReferenceTemplate__set_key( tag , value )
+_ControlReferenceTemplate__set_key ( tag , value )
-parse_SE_config( config )
+parse_SE_config ( config )
Parse a control reference template as given e.g. in an MSE APDU.
@@ -216,7 +217,7 @@ to support new or different algorithms.
-to_string( )
+to_string ( )
Return the content of the CRT, encoded as TLV data in a string
@@ -224,25 +225,25 @@ to support new or different algorithms.
-class virtualsmartcard.SEutils.Security_Environment( MF , SAM )
-Bases: object
+class virtualsmartcard.SEutils. Security_Environment ( MF , SAM )
+Bases: object
-_set_SE( p2 , data )
+_set_SE ( p2 , data )
Manipulate the current Security Environment. P2 is the tag of a
control reference template, data contains control reference objects
-compute_cryptographic_checksum( p1 , p2 , data )
+compute_cryptographic_checksum ( p1 , p2 , data )
Compute a cryptographic checksum (e.g. MAC) for the given data.
Algorithm and key are specified in the current SE
-compute_digital_signature( p1 , p2 , data )
+compute_digital_signature ( p1 , p2 , data )
Compute a digital signature for the given data.
Algorithm and key are specified in the current SE
@@ -262,7 +263,7 @@ is included in the data field.
-decipher( p1 , p2 , data )
+decipher ( p1 , p2 , data )
Decipher data using key, algorithm, IV and Padding specified
by the current Security environment.
@@ -277,7 +278,7 @@ by the current Security environment.
-encipher( p1 , p2 , data )
+encipher ( p1 , p2 , data )
Encipher data using key, algorithm, IV and Padding specified
by the current Security environment.
@@ -292,7 +293,7 @@ by the current Security environment.
-generate_public_key_pair( p1 , p2 , data )
+generate_public_key_pair ( p1 , p2 , data )
The GENERATE PUBLIC-KEY PAIR command either initiates the generation
and storing of a key pair, i.e., a public key and a private key, in the
card, or accesses a key pair previously generated in the card.
@@ -315,7 +316,7 @@ P1-P2 different from ‘0000’
-hash( p1 , p2 , data )
+hash ( p1 , p2 , data )
Hash the given data using the algorithm specified by the current
Security environment.
@@ -330,7 +331,7 @@ Security environment.
-manage_security_environment( p1 , p2 , data )
+manage_security_environment ( p1 , p2 , data )
This method is used to store, restore or erase Security Environments
or to manipulate the various parameters of the current SE.
P1 specifies the operation to perform, p2 is either the SEID for the
@@ -553,7 +554,7 @@ authentication and key agreement
-parse_SM_CAPDU( CAPDU , authenticate_header )
+parse_SM_CAPDU ( CAPDU , authenticate_header )
This methods parses a data field including Secure Messaging objects.
SM_header indicates whether or not the header of the message shall be
authenticated. It returns an unprotected command APDU
@@ -577,7 +578,7 @@ included in authentication mechanisms
-perform_security_operation( p1 , p2 , data )
+perform_security_operation ( p1 , p2 , data )
In the end this command is nothing but a big switch for all the other
commands in ISO 7816-8. It will invoke the appropriate command and
return its result
@@ -585,7 +586,7 @@ return its result
-protect_response( sw , result )
+protect_response ( sw , result )
This method protects a response APDU using secure messaging mechanisms
@@ -599,7 +600,7 @@ return its result
-verify_certificate( p1 , p2 , data )
+verify_certificate ( p1 , p2 , data )
Verify a certificate send by the terminal using the internal trust
anchors.
This method is currently not implemented.
@@ -607,7 +608,7 @@ This method is currently not implemented.
-verify_cryptographic_checksum( p1 , p2 , data )
+verify_cryptographic_checksum ( p1 , p2 , data )
Verify the cryptographic checksum contained in the data field.
Data field must contain a cryptographic checksum (tag 0x8E) and a plain
value (tag 0x80)
@@ -615,7 +616,7 @@ value (tag 0x80)
-verify_digital_signature( p1 , p2 , data )
+verify_digital_signature ( p1 , p2 , data )
Verify the digital signature contained in the data field. Data must
contain a data to sign (tag 0x9A, 0xAC or 0xBC) and a digital signature
(0x9E)
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.SWutils.html b/docs/virtualsmartcard/api/virtualsmartcard.SWutils.html
index bd4dcd5..6653271 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.SWutils.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.SWutils.html
@@ -5,7 +5,7 @@
- SWutils Module — vsmartcard 2017-01-08 documentation
+ SWutils Module — vsmartcard 2017-01-16 documentation
@@ -15,7 +15,7 @@
-
+
@@ -39,7 +39,7 @@
-
+
Virtual Smart Card
Remote Smart Card Reader
Android Smart Card Emulator
+Tizen Smart Card Emulator
PC/SC Relay
USB CCID Emulator
@@ -158,16 +159,16 @@
-exception virtualsmartcard.SWutils.SwError( sw )
-Bases: exceptions.Exception
+exception virtualsmartcard.SWutils. SwError ( sw )
+Bases: exceptions.Exception
-args
+args
-message
+message
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.html b/docs/virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.html
index 45c692c..572eb45 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.html
@@ -5,7 +5,7 @@
- SmartcardFilesystem Module — vsmartcard 2017-01-08 documentation
+ SmartcardFilesystem Module — vsmartcard 2017-01-16 documentation
@@ -15,7 +15,7 @@
-
+
@@ -39,7 +39,7 @@
-
+
Virtual Smart Card
Remote Smart Card Reader
Android Smart Card Emulator
+Tizen Smart Card Emulator
PC/SC Relay
USB CCID Emulator
@@ -164,76 +165,76 @@
-class virtualsmartcard.SmartcardFilesystem.DF( parent , fid , filedescriptor=56 , lifecycle=5 , simpletlv_data=None , bertlv_data=None , dfname=None , data='' )
-Bases: virtualsmartcard.SmartcardFilesystem.File
+class virtualsmartcard.SmartcardFilesystem. DF ( parent , fid , filedescriptor=56 , lifecycle=5 , simpletlv_data=None , bertlv_data=None , dfname=None , data='' )
+Bases: virtualsmartcard.SmartcardFilesystem.File
Class for a dedicated file
-append( file )
+append ( file )
Appends ‘file’ to the content of the DF.
-appendrecord( *argz , **args )
+appendrecord ( *argz , **args )
Only a template, will raise an error.
-bertlv_data
+bertlv_data
list of (tag, length, value)-tuples of BER-TLV coded data objects (encrypted)
-content
+content
list of files of the DF
-data
+data
unknown
-decrypt( path , data )
+decrypt ( path , data )
-dfname
+dfname
string with up to 16 bytes. DF name,which can also be used as applicationidentifier.
-encrypt( path , data )
+encrypt ( path , data )
-erasebinary( *argz , **args )
+erasebinary ( *argz , **args )
Only a template, will raise an error.
-fid
+fid
file identifier
-filedescriptor
+filedescriptor
file descriptor byte
-getdata( isSimpleTlv , requestedTL )
+getdata ( isSimpleTlv , requestedTL )
Returns a string of either the file’s BER-TLV or the file’s SIMPLE-TLV
coded data objects depending on the bool ‘isSimpleTlv’. ‘requestedTL’
is a list of (tag, length)-tuples that specify which tags should be
@@ -242,25 +243,25 @@ returned in what size.
-getpath( )
+getpath ( )
Returns the path to this file beginning with the MF’s fid.
-lifecycle
+lifecycle
life cycle byte
-parent
+parent
parent DF
-putdata( isSimpleTlv , newtlvlist )
+putdata ( isSimpleTlv , newtlvlist )
Sets either the file’s BER-TLV or the file’s SIMPLE-TLV coded data
objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’ is a list of
(tag, length, value)-tuples of new data.
@@ -268,25 +269,25 @@ objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’
-readbinary( *argz , **args )
+readbinary ( *argz , **args )
Only a template, will raise an error.
-readrecord( *argz , **args )
+readrecord ( *argz , **args )
Only a template, will raise an error.
-remove( file )
+remove ( file )
Removes ‘file’ from the content of the DF
-select( attribute , value , reference=0 , index_current=0 )
+select ( attribute , value , reference=0 , index_current=0 )
Returns the first file of the DF, that has the ‘attribute’ with the
specified ‘value’. For partial DF name selection you must specify the
first/last/next or previous occurence with ‘reference’ and the index of
@@ -295,31 +296,31 @@ the current file ‘index_current’ (-1 for None).
-simpletlv_data
+simpletlv_data
list of (tag, length, value)-tuples of SIMPLE-TLV coded data objects (encrypted)
-updatebinary( *argz , **args )
+updatebinary ( *argz , **args )
Only a template, will raise an error.
-updaterecord( *argz , **args )
+updaterecord ( *argz , **args )
Only a template, will raise an error.
-writebinary( *argz , **args )
+writebinary ( *argz , **args )
Only a template, will raise an error.
-writerecord( *argz , **args )
+writerecord ( *argz , **args )
Only a template, will raise an error.
@@ -327,58 +328,58 @@ the current file ‘index_current’ (-1 for None).
-class virtualsmartcard.SmartcardFilesystem.EF( parent , fid , filedescriptor , lifecycle=5 , simpletlv_data=None , bertlv_data=None , datacoding=0 , shortfid=0 )
-Bases: virtualsmartcard.SmartcardFilesystem.File
+class virtualsmartcard.SmartcardFilesystem. EF ( parent , fid , filedescriptor , lifecycle=5 , simpletlv_data=None , bertlv_data=None , datacoding=0 , shortfid=0 )
+Bases: virtualsmartcard.SmartcardFilesystem.File
Template class for an elementary file.
-appendrecord( *argz , **args )
+appendrecord ( *argz , **args )
Only a template, will raise an error.
-bertlv_data
+bertlv_data
list of (tag, length, value)-tuples of BER-TLV coded data objects (encrypted)
-datacoding
+datacoding
integer. Data coding byte.
-decrypt( path , data )
+decrypt ( path , data )
-encrypt( path , data )
+encrypt ( path , data )
-erasebinary( *argz , **args )
+erasebinary ( *argz , **args )
Only a template, will raise an error.
-fid
+fid
file identifier
-filedescriptor
+filedescriptor
file descriptor byte
-getdata( isSimpleTlv , requestedTL )
+getdata ( isSimpleTlv , requestedTL )
Returns a string of either the file’s BER-TLV or the file’s SIMPLE-TLV
coded data objects depending on the bool ‘isSimpleTlv’. ‘requestedTL’
is a list of (tag, length)-tuples that specify which tags should be
@@ -387,25 +388,25 @@ returned in what size.
-getpath( )
+getpath ( )
Returns the path to this file beginning with the MF’s fid.
-lifecycle
+lifecycle
life cycle byte
-parent
+parent
parent DF
-putdata( isSimpleTlv , newtlvlist )
+putdata ( isSimpleTlv , newtlvlist )
Sets either the file’s BER-TLV or the file’s SIMPLE-TLV coded data
objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’ is a list of
(tag, length, value)-tuples of new data.
@@ -413,55 +414,55 @@ objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’
-readbinary( *argz , **args )
+readbinary ( *argz , **args )
Only a template, will raise an error.
-readrecord( *argz , **args )
+readrecord ( *argz , **args )
Only a template, will raise an error.
-select( *argz , **args )
+select ( *argz , **args )
Only a template, will raise an error.
-shortfid
+shortfid
integer with 1<=shortfid<=30.Short EF identifier.
-simpletlv_data
+simpletlv_data
list of (tag, length, value)-tuples of SIMPLE-TLV coded data objects (encrypted)
-updatebinary( *argz , **args )
+updatebinary ( *argz , **args )
Only a template, will raise an error.
-updaterecord( *argz , **args )
+updaterecord ( *argz , **args )
Only a template, will raise an error.
-writebinary( *argz , **args )
+writebinary ( *argz , **args )
Only a template, will raise an error.
-writerecord( *argz , **args )
+writerecord ( *argz , **args )
Only a template, will raise an error.
@@ -469,52 +470,52 @@ objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’
-class virtualsmartcard.SmartcardFilesystem.File( parent , fid , filedescriptor , lifecycle=5 , simpletlv_data=None , bertlv_data=None , SAM=None , extra_fci_data='' )
-Bases: object
+class virtualsmartcard.SmartcardFilesystem. File ( parent , fid , filedescriptor , lifecycle=5 , simpletlv_data=None , bertlv_data=None , SAM=None , extra_fci_data='' )
+Bases: object
Template class for a smartcard file.
-appendrecord( *argz , **args )
+appendrecord ( *argz , **args )
Only a template, will raise an error.
-bertlv_data
+bertlv_data
list of (tag, length, value)-tuples of BER-TLV coded data objects (encrypted)
-decrypt( path , data )
+decrypt ( path , data )
-encrypt( path , data )
+encrypt ( path , data )
-erasebinary( *argz , **args )
+erasebinary ( *argz , **args )
Only a template, will raise an error.
-fid
+fid
file identifier
-filedescriptor
+filedescriptor
file descriptor byte
-getdata( isSimpleTlv , requestedTL )
+getdata ( isSimpleTlv , requestedTL )
Returns a string of either the file’s BER-TLV or the file’s SIMPLE-TLV
coded data objects depending on the bool ‘isSimpleTlv’. ‘requestedTL’
is a list of (tag, length)-tuples that specify which tags should be
@@ -523,25 +524,25 @@ returned in what size.
-getpath( )
+getpath ( )
Returns the path to this file beginning with the MF’s fid.
-lifecycle
+lifecycle
life cycle byte
-parent
+parent
parent DF
-putdata( isSimpleTlv , newtlvlist )
+putdata ( isSimpleTlv , newtlvlist )
Sets either the file’s BER-TLV or the file’s SIMPLE-TLV coded data
objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’ is a list of
(tag, length, value)-tuples of new data.
@@ -549,49 +550,49 @@ objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’
-readbinary( *argz , **args )
+readbinary ( *argz , **args )
Only a template, will raise an error.
-readrecord( *argz , **args )
+readrecord ( *argz , **args )
Only a template, will raise an error.
-select( *argz , **args )
+select ( *argz , **args )
Only a template, will raise an error.
-simpletlv_data
+simpletlv_data
list of (tag, length, value)-tuples of SIMPLE-TLV coded data objects (encrypted)
-updatebinary( *argz , **args )
+updatebinary ( *argz , **args )
Only a template, will raise an error.
-updaterecord( *argz , **args )
+updaterecord ( *argz , **args )
Only a template, will raise an error.
-writebinary( *argz , **args )
+writebinary ( *argz , **args )
Only a template, will raise an error.
-writerecord( *argz , **args )
+writerecord ( *argz , **args )
Only a template, will raise an error.
@@ -599,25 +600,25 @@ objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’
-class virtualsmartcard.SmartcardFilesystem.MF( filedescriptor=56 , lifecycle=5 , simpletlv_data=None , bertlv_data=None , dfname=None )
-Bases: virtualsmartcard.SmartcardFilesystem.DF
+class virtualsmartcard.SmartcardFilesystem. MF ( filedescriptor=56 , lifecycle=5 , simpletlv_data=None , bertlv_data=None , dfname=None )
+Bases: virtualsmartcard.SmartcardFilesystem.DF
Class for a master file
-_selectFile( p1 , p2 , data )
+_selectFile ( p1 , p2 , data )
Returns the file specified by ‘p1’ and ‘data’ from the select
file command APDU.
-append( file )
+append ( file )
Appends ‘file’ to the content of the DF.
-appendRecord( p1 , p2 , data )
+appendRecord ( p1 , p2 , data )
Function for instruction 0xe2. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -633,32 +634,32 @@ data as binary string.
-appendrecord( *argz , **args )
+appendrecord ( *argz , **args )
Only a template, will raise an error.
-bertlv_data
+bertlv_data
list of (tag, length, value)-tuples of BER-TLV coded data objects (encrypted)
-content
+content
list of files of the DF
-static create( p1 , p2 , data )
+static create ( p1 , p2 , data )
Creates and returns a list of files according to the parameters of a
create file command.
-createFile( p1 , p2 , data )
+createFile ( p1 , p2 , data )
Function for instruction 0xe0. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -674,31 +675,31 @@ data as binary string.
-current
+current
the currently selected file
-currentDF( )
+currentDF ( )
Returns the current DF.
-currentEF( )
+currentEF ( )
Returns the current EF or None if not available.
-data
+data
unknown
-dataObjectHandlingDecodeEncapsulated( p1 , p2 , data )
+dataObjectHandlingDecodeEncapsulated ( p1 , p2 , data )
Decodes ‘p1’, ‘p2’ and ‘data’ from a data object handling command (i.
e. get/put data) with odd instruction code.
@@ -715,7 +716,7 @@ SIMPLE-TLV data objects False otherwise and a list of
-dataObjectHandlingDecodePlain( p1 , p2 , data )
+dataObjectHandlingDecodePlain ( p1 , p2 , data )
Decodes ‘p1’, ‘p2’ and ‘data’ from a data object handling command (i.
e. get/put data) with even instruction code.
@@ -732,7 +733,7 @@ SIMPLE-TLV data objects False otherwise and a list of
-dataUnitsDecodeEncapsulated( p1 , p2 , data )
+dataUnitsDecodeEncapsulated ( p1 , p2 , data )
Decodes ‘p1’, ‘p2’ and ‘data’ from a data unit command (i. e.
read/write/update/search/erase binary) with odd instruction code.
@@ -743,7 +744,7 @@ read/write/update/search/erase binary) with odd instruction code.
-dataUnitsDecodePlain( p1 , p2 , data )
+dataUnitsDecodePlain ( p1 , p2 , data )
Decodes ‘p1’, ‘p2’ and ‘data’ from a data unit command (i. e.
read/write/update/search/erase binary) with even instruction code.
@@ -759,12 +760,12 @@ list of data strings.
-decrypt( path , data )
+decrypt ( path , data )
-deleteFile( p1 , p2 , data )
+deleteFile ( p1 , p2 , data )
Function for instruction 0xe4. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -780,13 +781,13 @@ data as binary string.
-dfname
+dfname
string with up to 16 bytes. DF name,which can also be used as applicationidentifier.
-static encodeFileControlParameter( file )
+static encodeFileControlParameter ( file )
Returns a string of TLV-coded file control information of ‘file’. Note:
The result is not prepended with tag and length for neither TCP, FMD
nor FCI template.
@@ -794,12 +795,12 @@ nor FCI template.
-encrypt( path , data )
+encrypt ( path , data )
-eraseBinaryEncapsulated( p1 , p2 , data )
+eraseBinaryEncapsulated ( p1 , p2 , data )
Function for instruction 0x0f. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -815,7 +816,7 @@ data as binary string.
-eraseBinaryPlain( p1 , p2 , data )
+eraseBinaryPlain ( p1 , p2 , data )
Function for instruction 0x0e. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -831,7 +832,7 @@ data as binary string.
-eraseRecord( p1 , p2 , data )
+eraseRecord ( p1 , p2 , data )
Function for instruction 0x0c. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -847,31 +848,31 @@ data as binary string.
-erasebinary( *argz , **args )
+erasebinary ( *argz , **args )
Only a template, will raise an error.
-fid
+fid
file identifier
-filedescriptor
+filedescriptor
file descriptor byte
-firstSFT
+firstSFT
string of length 1. The firstsoftware function table from thehistorical bytes.
-getDataEncapsulated( p1 , p2 , data )
+getDataEncapsulated ( p1 , p2 , data )
Function for instruction 0xcb. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -887,7 +888,7 @@ data as binary string.
-getDataPlain( p1 , p2 , data )
+getDataPlain ( p1 , p2 , data )
Function for instruction 0xca. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -903,7 +904,7 @@ data as binary string.
-getdata( isSimpleTlv , requestedTL )
+getdata ( isSimpleTlv , requestedTL )
Returns a string of either the file’s BER-TLV or the file’s SIMPLE-TLV
coded data objects depending on the bool ‘isSimpleTlv’. ‘requestedTL’
is a list of (tag, length)-tuples that specify which tags should be
@@ -912,39 +913,39 @@ returned in what size.
-getpath( )
+getpath ( )
Returns the path to this file beginning with the MF’s fid.
-lifecycle
+lifecycle
life cycle byte
-static makeFirstSoftwareFunctionTable( DFSelectionByFullDFName=True , DFSelectionByPartialDFName=True , DFSelectionByPath=True , DFSelectionByFID=True , DFSelectionByApplication_implicite=True , ShortFIDSupported=True , RecordNumberSupported=True , RecordIdentifierSupported=True )
+static makeFirstSoftwareFunctionTable ( DFSelectionByFullDFName=True , DFSelectionByPartialDFName=True , DFSelectionByPath=True , DFSelectionByFID=True , DFSelectionByApplication_implicite=True , ShortFIDSupported=True , RecordNumberSupported=True , RecordIdentifierSupported=True )
Returns a byte according to the first software function table from the
historical bytes of the card capabilities.
-static makeSecondSoftwareFunctionTable( DCB=1 )
+static makeSecondSoftwareFunctionTable ( DCB=1 )
The second software function table from the historical bytes contains
the data coding byte.
-parent
+parent
parent DF
-putDataEncapsulated( p1 , p2 , data )
+putDataEncapsulated ( p1 , p2 , data )
Function for instruction 0xdb. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -960,7 +961,7 @@ data as binary string.
-putDataPlain( p1 , p2 , data )
+putDataPlain ( p1 , p2 , data )
Function for instruction 0xda. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -976,7 +977,7 @@ data as binary string.
-putdata( isSimpleTlv , newtlvlist )
+putdata ( isSimpleTlv , newtlvlist )
Sets either the file’s BER-TLV or the file’s SIMPLE-TLV coded data
objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’ is a list of
(tag, length, value)-tuples of new data.
@@ -984,7 +985,7 @@ objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’
-readBinaryEncapsulated( p1 , p2 , data )
+readBinaryEncapsulated ( p1 , p2 , data )
Function for instruction 0xb1. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -1000,7 +1001,7 @@ data as binary string.
-readBinaryPlain( p1 , p2 , data )
+readBinaryPlain ( p1 , p2 , data )
Function for instruction 0xb0. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -1016,7 +1017,7 @@ data as binary string.
-readRecordEncapsulated( p1 , p2 , data )
+readRecordEncapsulated ( p1 , p2 , data )
Function for instruction 0xb3. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -1032,7 +1033,7 @@ data as binary string.
-readRecordPlain( p1 , p2 , data )
+readRecordPlain ( p1 , p2 , data )
Function for instruction 0xb2. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -1048,19 +1049,19 @@ data as binary string.
-readbinary( *argz , **args )
+readbinary ( *argz , **args )
Only a template, will raise an error.
-readrecord( *argz , **args )
+readrecord ( *argz , **args )
Only a template, will raise an error.
-recordHandlingDecode( p1 , p2 )
+recordHandlingDecode ( p1 , p2 )
Decodes ‘p1’ and ‘p2’ from a record handling command (i. e.
read/write/update/append/search/erase record).
@@ -1077,29 +1078,29 @@ the record and a reference, that specifies which record to select
-remove( file )
+remove ( file )
Removes ‘file’ from the content of the DF
-searchBinaryEncapsulated( p1 , p2 , data )
+searchBinaryEncapsulated ( p1 , p2 , data )
-searchBinaryPlain( p1 , p2 , data )
+searchBinaryPlain ( p1 , p2 , data )
-secondSFT
+secondSFT
string of length 1. The secondsoftware function table from thehistorical bytes.
-select( attribute , value , reference=0 , index_current=0 )
+select ( attribute , value , reference=0 , index_current=0 )
Returns the first file of the DF, that has the ‘attribute’ with the
specified ‘value’. For partial DF name selection you must specify the
first/last/next or previous occurence with ‘reference’ and the index of
@@ -1108,7 +1109,7 @@ the current file ‘index_current’ (-1 for None).
-selectFile( p1 , p2 , data )
+selectFile ( p1 , p2 , data )
Function for instruction 0xa4. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -1124,13 +1125,13 @@ data as binary string.
-simpletlv_data
+simpletlv_data
list of (tag, length, value)-tuples of SIMPLE-TLV coded data objects (encrypted)
-updateBinaryEncapsulated( p1 , p2 , data )
+updateBinaryEncapsulated ( p1 , p2 , data )
Function for instruction 0xd7. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -1146,7 +1147,7 @@ data as binary string.
-updateBinaryPlain( p1 , p2 , data )
+updateBinaryPlain ( p1 , p2 , data )
Function for instruction 0xd6. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -1162,7 +1163,7 @@ data as binary string.
-updateRecordEncapsulated( p1 , p2 , data )
+updateRecordEncapsulated ( p1 , p2 , data )
Function for instruction 0xdd. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -1178,7 +1179,7 @@ data as binary string.
-updateRecordPlain( p1 , p2 , data )
+updateRecordPlain ( p1 , p2 , data )
Function for instruction 0xdc. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -1194,19 +1195,19 @@ data as binary string.
-updatebinary( *argz , **args )
+updatebinary ( *argz , **args )
Only a template, will raise an error.
-updaterecord( *argz , **args )
+updaterecord ( *argz , **args )
Only a template, will raise an error.
-writeBinaryEncapsulated( p1 , p2 , data )
+writeBinaryEncapsulated ( p1 , p2 , data )
Function for instruction 0xd1. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string. Returns the status bytes as two
byte long integer and the response data as binary string.
@@ -1214,7 +1215,7 @@ byte long integer and the response data as binary string.
-writeBinaryPlain( p1 , p2 , data )
+writeBinaryPlain ( p1 , p2 , data )
Function for instruction 0xd0. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -1230,7 +1231,7 @@ data as binary string.
-writeRecord( p1 , p2 , data )
+writeRecord ( p1 , p2 , data )
Function for instruction 0xd2. Takes the parameter bytes ‘p1’, ‘p2’ as
integers and ‘data’ as binary string.
@@ -1246,13 +1247,13 @@ data as binary string.
-writebinary( *argz , **args )
+writebinary ( *argz , **args )
Only a template, will raise an error.
-writerecord( *argz , **args )
+writerecord ( *argz , **args )
Only a template, will raise an error.
@@ -1260,17 +1261,17 @@ data as binary string.
-class virtualsmartcard.SmartcardFilesystem.Record( identifier=None , data='' )
-Bases: object
+class virtualsmartcard.SmartcardFilesystem. Record ( identifier=None , data='' )
+Bases: object
-data
+data
string. The record’s data.
-identifier
+identifier
Class for a Record of an elementary of record structure
@@ -1278,12 +1279,12 @@ data as binary string.
-class virtualsmartcard.SmartcardFilesystem.RecordStructureEF( parent , fid , filedescriptor , lifecycle=5 , simpletlv_data=None , bertlv_data=None , datacoding=0 , shortfid=0 , maxrecordsize=65535 , records=[] )
-Bases: virtualsmartcard.SmartcardFilesystem.EF
+class virtualsmartcard.SmartcardFilesystem. RecordStructureEF ( parent , fid , filedescriptor , lifecycle=5 , simpletlv_data=None , bertlv_data=None , datacoding=0 , shortfid=0 , maxrecordsize=65535 , records=[] )
+Bases: virtualsmartcard.SmartcardFilesystem.EF
Class for an elementary file with record structure.
-_RecordStructureEF__getRecords( num_id , reference )
+_RecordStructureEF__getRecords ( num_id , reference )
Returns a list of records.
@@ -1302,7 +1303,7 @@ bits of ‘p1’ of a record handling command)
-_RecordStructureEF__getRecordsByIdentifier( id , reference )
+_RecordStructureEF__getRecordsByIdentifier ( id , reference )
Returns a list of records and sets the recordpointer to the first
record, that matched. Is to be involved by __getRecords.
@@ -1322,7 +1323,7 @@ bits of ‘p1’ of a record handling command)
-_RecordStructureEF__getRecordsByNumber( number , reference )
+_RecordStructureEF__getRecordsByNumber ( number , reference )
Returns a list of records. Is to be involved by __getRecords.
@@ -1341,61 +1342,61 @@ bits of ‘p1’ of a record handling command)
-appendrecord( data )
+appendrecord ( data )
Appends a new record to the file, initializing it with the given data
string. Sets the recordpointer to the newly created record.
-bertlv_data
+bertlv_data
list of (tag, length, value)-tuples of BER-TLV coded data objects (encrypted)
-datacoding
+datacoding
integer. Data coding byte.
-decrypt( path , data )
+decrypt ( path , data )
-encrypt( path , data )
+encrypt ( path , data )
-erasebinary( *argz , **args )
+erasebinary ( *argz , **args )
Only a template, will raise an error.
-eraserecord( num_id , reference )
+eraserecord ( num_id , reference )
Removes a record from the file. ‘num_id’ and ‘reference’ specify the
record (see __getRecords).
-fid
+fid
file identifier
-filedescriptor
+filedescriptor
file descriptor byte
-getdata( isSimpleTlv , requestedTL )
+getdata ( isSimpleTlv , requestedTL )
Returns a string of either the file’s BER-TLV or the file’s SIMPLE-TLV
coded data objects depending on the bool ‘isSimpleTlv’. ‘requestedTL’
is a list of (tag, length)-tuples that specify which tags should be
@@ -1404,49 +1405,49 @@ returned in what size.
-getpath( )
+getpath ( )
Returns the path to this file beginning with the MF’s fid.
-hasFixedRecordSize( )
+hasFixedRecordSize ( )
Returns True if the records are of fixed size, False otherwise.
-hasSimpleTlv( )
+hasSimpleTlv ( )
Returns True if the EF is of TLV structure, False otherwise.
-isCyclic( )
+isCyclic ( )
Returns True if the EF is of cyclic structure, False otherwise.
-lifecycle
+lifecycle
life cycle byte
-maxrecordsize
+maxrecordsize
integer. maximum length of a record’s data.
-parent
+parent
parent DF
-putdata( isSimpleTlv , newtlvlist )
+putdata ( isSimpleTlv , newtlvlist )
Sets either the file’s BER-TLV or the file’s SIMPLE-TLV coded data
objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’ is a list of
(tag, length, value)-tuples of new data.
@@ -1454,75 +1455,75 @@ objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’
-readbinary( *argz , **args )
+readbinary ( *argz , **args )
Only a template, will raise an error.
-readrecord( offset , num_id , reference )
+readrecord ( offset , num_id , reference )
Returns a data string from the given ‘offset’. ‘num_id’ and ‘reference’
specify the record (see __getRecords).
-recordpointer
+recordpointer
integer. Points to the current record (i. e. index of records).
-records
+records
list of records (encrypted)
-resetRecordPointer( )
+resetRecordPointer ( )
Resets the record pointer.
-select( *argz , **args )
+select ( *argz , **args )
Only a template, will raise an error.
-shortfid
+shortfid
integer with 1<=shortfid<=30.Short EF identifier.
-simpletlv_data
+simpletlv_data
list of (tag, length, value)-tuples of SIMPLE-TLV coded data objects (encrypted)
-updatebinary( *argz , **args )
+updatebinary ( *argz , **args )
Only a template, will raise an error.
-updaterecord( num_id , reference , offset , data )
+updaterecord ( num_id , reference , offset , data )
x.updaterecord(num_id, reference, offset, data) <==>
x.writerecord(num_id, reference, offset, data, DCB[“ONETIMEWRITE”])
-writebinary( *argz , **args )
+writebinary ( *argz , **args )
Only a template, will raise an error.
-writerecord( num_id , reference , offset , data , datacoding=None )
+writerecord ( num_id , reference , offset , data , datacoding=None )
Writes a data string to the ‘offset’ of a record using the given data
coding byte. ‘num_id’ and ‘reference’ specify the record (see
__getRecords).
@@ -1532,65 +1533,65 @@ __getRecords).
-class virtualsmartcard.SmartcardFilesystem.TransparentStructureEF( parent , fid , filedescriptor=1 , lifecycle=5 , simpletlv_data=None , bertlv_data=None , datacoding=0 , shortfid=0 , data='' )
-Bases: virtualsmartcard.SmartcardFilesystem.EF
+class virtualsmartcard.SmartcardFilesystem. TransparentStructureEF ( parent , fid , filedescriptor=1 , lifecycle=5 , simpletlv_data=None , bertlv_data=None , datacoding=0 , shortfid=0 , data='' )
+Bases: virtualsmartcard.SmartcardFilesystem.EF
Class for an elementary file with transparent structure.
-appendrecord( *argz , **args )
+appendrecord ( *argz , **args )
Only a template, will raise an error.
-bertlv_data
+bertlv_data
list of (tag, length, value)-tuples of BER-TLV coded data objects (encrypted)
-data
+data
string (encrypted). The file’s data.
-datacoding
+datacoding
integer. Data coding byte.
-decrypt( path , data )
+decrypt ( path , data )
-encrypt( path , data )
+encrypt ( path , data )
-erasebinary( erasefrom , eraseto )
+erasebinary ( erasefrom , eraseto )
Sets (part of) the content of an EF to its logical erased state,
sequentially starting from ‘erasefrom’ ending at ‘eraseto’.
-fid
+fid
file identifier
-filedescriptor
+filedescriptor
file descriptor byte
-getdata( isSimpleTlv , requestedTL )
+getdata ( isSimpleTlv , requestedTL )
Returns a string of either the file’s BER-TLV or the file’s SIMPLE-TLV
coded data objects depending on the bool ‘isSimpleTlv’. ‘requestedTL’
is a list of (tag, length)-tuples that specify which tags should be
@@ -1599,25 +1600,25 @@ returned in what size.
-getpath( )
+getpath ( )
Returns the path to this file beginning with the MF’s fid.
-lifecycle
+lifecycle
life cycle byte
-parent
+parent
parent DF
-putdata( isSimpleTlv , newtlvlist )
+putdata ( isSimpleTlv , newtlvlist )
Sets either the file’s BER-TLV or the file’s SIMPLE-TLV coded data
objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’ is a list of
(tag, length, value)-tuples of new data.
@@ -1625,50 +1626,50 @@ objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’
-readbinary( offset )
+readbinary ( offset )
Returns the string of decrypted data beginning at ‘offset’.
-readrecord( *argz , **args )
+readrecord ( *argz , **args )
Only a template, will raise an error.
-select( *argz , **args )
+select ( *argz , **args )
Only a template, will raise an error.
-shortfid
+shortfid
integer with 1<=shortfid<=30.Short EF identifier.
-simpletlv_data
+simpletlv_data
list of (tag, length, value)-tuples of SIMPLE-TLV coded data objects (encrypted)
-updatebinary( offsets , datalist )
+updatebinary ( offsets , datalist )
x.updatebinary(offsets, datalist) <==>
x.writebinary(offsets, datalist, DCB[“ONETIMEWRITE”])
-updaterecord( *argz , **args )
+updaterecord ( *argz , **args )
Only a template, will raise an error.
-writebinary( offsets , datalist , datacoding=None )
+writebinary ( offsets , datalist , datacoding=None )
Writes pieces of data to the specified offsets honoring the given
coding byte.
@@ -1688,7 +1689,7 @@ coding byte.
-writerecord( *argz , **args )
+writerecord ( *argz , **args )
Only a template, will raise an error.
@@ -1696,7 +1697,7 @@ coding byte.
-virtualsmartcard.SmartcardFilesystem.get_indexes( items , reference=0 , index_current=0 )
+virtualsmartcard.SmartcardFilesystem. get_indexes ( items , reference=0 , index_current=0 )
Returns all indexes of the list, which are specified by ‘reference’ and by
the current index ‘index_current’ (-1 for no current item) in the correct
order. I. e.:
@@ -1708,7 +1709,7 @@ REF[“IDENTIFIER_PREVIOUS”]: all indexes from the previous to the fir
-virtualsmartcard.SmartcardFilesystem.getfile_byrefdataobj( mf , refdataobjs )
+virtualsmartcard.SmartcardFilesystem. getfile_byrefdataobj ( mf , refdataobjs )
Returns a list of files according to the given list of reference data
objects.
param mf: the MF
@@ -1717,27 +1718,27 @@ param refdataobjs: a list of 3-tuples (tag, length, newvalue)
-virtualsmartcard.SmartcardFilesystem.isEqual( list )
+virtualsmartcard.SmartcardFilesystem. isEqual ( list )
Returns True, if all items are equal, otherwise False
-virtualsmartcard.SmartcardFilesystem.make_property( prop , doc )
+virtualsmartcard.SmartcardFilesystem. make_property ( prop , doc )
Assigns a property to the calling object. This is used to decorate instance
variables with docstrings.
-virtualsmartcard.SmartcardFilesystem.prettyprint_anything( indent , thing )
+virtualsmartcard.SmartcardFilesystem. prettyprint_anything ( indent , thing )
Returns a recursively generated string representation of an object and its
attributes.
-virtualsmartcard.SmartcardFilesystem.walk( start , path )
+virtualsmartcard.SmartcardFilesystem. walk ( start , path )
Walks a path of fids and returns the last file (EF or DF).
@@ -1755,7 +1756,7 @@ attributes.
-virtualsmartcard.SmartcardFilesystem.write( old , newlist , offsets , datacoding , maxsize=None )
+virtualsmartcard.SmartcardFilesystem. write ( old , newlist , offsets , datacoding , maxsize=None )
Returns the status bytes and the result of a write operation according to
the given data coding.
diff --git a/docs/virtualsmartcard/api/virtualsmartcard.SmartcardSAM.html b/docs/virtualsmartcard/api/virtualsmartcard.SmartcardSAM.html
index d84584b..757bd40 100644
--- a/docs/virtualsmartcard/api/virtualsmartcard.SmartcardSAM.html
+++ b/docs/virtualsmartcard/api/virtualsmartcard.SmartcardSAM.html
@@ -5,7 +5,7 @@
- SmartcardSAM Module — vsmartcard 2017-01-08 documentation
+ SmartcardSAM Module — vsmartcard 2017-01-16 documentation
@@ -15,7 +15,7 @@
-
+
@@ -39,7 +39,7 @@
-
+
Virtual Smart Card
Remote Smart Card Reader
Android Smart Card Emulator
+Tizen Smart Card Emulator
PC/SC Relay
USB CCID Emulator
@@ -158,15 +159,15 @@
-class virtualsmartcard.SmartcardSAM.SAM( PIN , cardNumber , mf=None , cardSecret=None , default_se=<class 'virtualsmartcard.SEutils.Security_Environment'> )
-Bases: object
+class virtualsmartcard.SmartcardSAM. SAM ( PIN , cardNumber , mf=None , cardSecret=None , default_se=<class 'virtualsmartcard.SEutils.Security_Environment'> )
+Bases: object
This class is used to store the data needed by the SAM.
It includes the PIN, the master key of the SAM and a hashmap containing all
the keys used by the file encryption system. The keys in the hashmap are
indexed via the path to the corresponding container.
-FSdecrypt( data )
+FSdecrypt ( data )
Decrypt the given data, using the parameters stored in the SAM.
Right now we do not encrypt the data. In memory encryption might or
might not be added in a future version.
@@ -174,7 +175,7 @@ might not be added in a future version.
-FSencrypt( data )
+FSencrypt ( data )
Encrypt the given data, using the parameters stored in the SAM.
Right now we do not encrypt the data. In memory encryption might or
might not be added in a future version.
@@ -182,7 +183,7 @@ might not be added in a future version.
-_get_referenced_key( p1 , p2 )
+_get_referenced_key ( p1 , p2 )
This method returns the key specified by the p2 parameter. The key may
be stored on the cards filesystem.
@@ -322,54 +323,54 @@ key)
-change_reference_data( p1 , p2 , data )
+change_reference_data ( p1 , p2 , data )
Change the specified referenced data (e.g. CHV) of the card
-erase_SE( SEID )
+erase_SE ( SEID )
Erases a Security Environment stored under SEID from the SAM
-external_authenticate( p1 , p2 , data )
+external_authenticate ( p1 , p2 , data )
Authenticate the terminal to the card. Check whether Terminal correctly
encrypted the given challenge or not
-generate_public_key_pair( p1 , p2 , data )
+generate_public_key_pair ( p1 , p2 , data )
-get_card_number( )
+get_card_number ( )
-get_challenge( p1 , p2 , data )
+get_challenge ( p1 , p2 , data )
Generate a random number of maximum 8 Byte and return it.
-internal_authenticate( p1 , p2 , data )
+internal_authenticate ( p1 , p2 , data )
Authenticate card to terminal. Encrypt the challenge of the terminal
to prove key posession
-manage_security_environment( p1 , p2 , data )
+manage_security_environment ( p1 , p2 , data )
-mutual_authenticate( p1 , p2 , mutual_challenge )
+mutual_authenticate ( p1 , p2 , mutual_challenge )
Takes an encrypted challenge in the form
‘Terminal Challenge | Card Challenge | Card number’
and checks it for validity. If the challenge is successful
@@ -379,39 +380,39 @@ returns this value
-parse_SM_CAPDU( CAPDU , header_authentication )
+parse_SM_CAPDU ( CAPDU , header_authentication )
Parse a command APDU protected by Secure Messaging and return the
unprotected command APDU
-perform_security_operation( p1 , p2 , data )
+perform_security_operation ( p1 , p2 , data )
-protect_result( sw , unprotected_result )
+protect_result ( sw , unprotected_result )
Protect a plain response APDU by Secure Messaging
-restore_SE( SEID )
+restore_SE ( SEID )
Restores a Security Environment from the SAM and replaces the current
SE with it.
-set_MF( mf )
+set_MF ( mf )
Setter function for the internal reference to the Filesystem. The SAM
needs a reference to the filesystem in order to store/retrieve keys.
-set_asym_algorithm( cipher , keytype )
+set_asym_algorithm ( cipher , keytype )
@@ -428,14 +429,14 @@ needs a reference to the filesystem in order to store/retrieve keys.
-store_SE( SEID )
+store_SE ( SEID )
Stores the current Security environment in the secure access module.
The SEID is used as a reference to identify the SE.
-verify( p1 , p2 , PIN )
+verify ( p1 , p2 , PIN )
Authenticate the card user. Check if he entered a valid PIN.
If the PIN is invalid decrement retry counter. If retry counter
equals zero, block the card until reset with correct PUK
@@ -445,7 +446,7 @@ equals zero, block the card until reset with correct PUK