diff --git a/.appveyor.yml b/.appveyor.yml index 979cb63..9a060e4 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -51,8 +51,8 @@ install: build_script: - md %ARTIFACT% - - msbuild virtualsmartcard\win32\BixVReader.sln /p:Configuration=Release;Platform=%MSBUILD_PLATFORM% - - move virtualsmartcard\win32\BixVReaderInstaller\bin\%X64%Release\BixVReaderInstaller.msi %ARTIFACT% + - msbuild virtualsmartcard\win32\VivoKeySmartReader.sln /p:Configuration=Release;Platform=%MSBUILD_PLATFORM% + - move virtualsmartcard\win32\VivoKeySmartReaderInstaller\bin\%X64%Release\VivoKeySmartReaderInstaller.msi %ARTIFACT% - move virtualsmartcard\win32\%X64%Release\*.cer %ARTIFACT% - copy virtualsmartcard\doc\install.txt %ARTIFACT% diff --git a/.gitignore b/.gitignore index add4a36..63132cb 100644 --- a/.gitignore +++ b/.gitignore @@ -74,6 +74,10 @@ virtualsmartcard/win32/vpcd-config/Debug virtualsmartcard/win32/vpcd-config/vpcd-config.v12.suo npa/opensc.conf remote-reader/build/* +virtualsmartcard/win32/x64 +virtualsmartcard/win32/.vs +virtualsmartcard/win32/VivoKeySmartReader/x64 +virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.aps .DS_Store .idea @@ -82,7 +86,7 @@ local.properties /virtualsmartcard/bin /virtualsmartcard/obj /virtualsmartcard/lib -/virtualsmartcard/win32/BixVReader/Release +/virtualsmartcard/win32/VivoKeySmartReader/Release /virtualsmartcard/win32/Release ACardEmulator/build diff --git a/docs/_sources/virtualsmartcard/README.txt b/docs/_sources/virtualsmartcard/README.txt index d2e8e9f..18137d7 100644 --- a/docs/_sources/virtualsmartcard/README.txt +++ b/docs/_sources/virtualsmartcard/README.txt @@ -162,13 +162,13 @@ requires the `WiX Toolset 3.10`_ to be installed. git submodule update --init --recursive 2. In Visual Studio open |vpcd|'s solution - :file:`virtualsmartcard\\win32\\BixVReader.sln` and ensure with the + :file:`virtualsmartcard\\win32\\VivoKeySmartReader.sln` and ensure with the configuration manager, that the project is built for your platform (i.e. ``x64`` or ``x82``). 3. If you can successfully :guilabel:`Build the solution`, you can find - the installer (:file:`BixVReaderInstaller.msi`) in - :file:`virtualsmartcard\\win32\\BixVReaderInstaller\\bin\\*Release` + the installer (:file:`VivoKeySmartReaderInstaller.msi`) in + :file:`virtualsmartcard\\win32\\VivoKeySmartReaderInstaller\\bin\\*Release` For debugging |vpcd| and building the driver with an older version of Visual Studio or WDK please see `Fabio Ottavi's UMDF Driver for a Virtual Smart Card @@ -260,16 +260,16 @@ In case of a problem, inspect the logs:: Configuring |vpcd| on Windows ================================================================================ -The configuration file :file:`BixVReader.ini` of |vpcd| is installed to +The configuration file :file:`VivoKeySmartReader.ini` of |vpcd| is installed to :file:`C:\\Windows` (:envvar:`%SystemRoot%`). The user mode device driver framework (:command:`WUDFHost.exe`) should read it automatically and load the |vpcd| on startup. The Windows Device Manager :command:`mmc devmgmt.msc` should -list the :guilabel:`Bix Virtual Smart Card Reader`. +list the :guilabel:`VivoKey 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``: -.. literalinclude:: ../../virtualsmartcard/win32/BixVReader/BixVReader.ini +.. literalinclude:: ../../virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.ini :emphasize-lines: 8 Currently it is not possible to configure the Windows driver to connect to an diff --git a/docs/searchindex.js b/docs/searchindex.js index 2a9de72..72bfe69 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["ACardEmulator/README","TCardEmulator/README","ccid/README","index","pcsc-relay/README","remote-reader/README","virtualsmartcard/README","virtualsmartcard/api","virtualsmartcard/api/virtualsmartcard","virtualsmartcard/api/virtualsmartcard.CardGenerator","virtualsmartcard/api/virtualsmartcard.ConstantDefinitions","virtualsmartcard/api/virtualsmartcard.CryptoUtils","virtualsmartcard/api/virtualsmartcard.SEutils","virtualsmartcard/api/virtualsmartcard.SWutils","virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem","virtualsmartcard/api/virtualsmartcard.SmartcardSAM","virtualsmartcard/api/virtualsmartcard.TLVutils","virtualsmartcard/api/virtualsmartcard.VirtualSmartcard","virtualsmartcard/api/virtualsmartcard.cards","virtualsmartcard/api/virtualsmartcard.cards.cryptoflex","virtualsmartcard/api/virtualsmartcard.cards.ePass","virtualsmartcard/api/virtualsmartcard.cards.nPA","virtualsmartcard/api/virtualsmartcard.utils","virtualsmartcard/install"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinxcontrib.bibtex":7,sphinx:56},filenames:["ACardEmulator/README.txt","TCardEmulator/README.txt","ccid/README.txt","index.txt","pcsc-relay/README.txt","remote-reader/README.txt","virtualsmartcard/README.txt","virtualsmartcard/api.txt","virtualsmartcard/api/virtualsmartcard.txt","virtualsmartcard/api/virtualsmartcard.CardGenerator.txt","virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.txt","virtualsmartcard/api/virtualsmartcard.CryptoUtils.txt","virtualsmartcard/api/virtualsmartcard.SEutils.txt","virtualsmartcard/api/virtualsmartcard.SWutils.txt","virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.txt","virtualsmartcard/api/virtualsmartcard.SmartcardSAM.txt","virtualsmartcard/api/virtualsmartcard.TLVutils.txt","virtualsmartcard/api/virtualsmartcard.VirtualSmartcard.txt","virtualsmartcard/api/virtualsmartcard.cards.txt","virtualsmartcard/api/virtualsmartcard.cards.cryptoflex.txt","virtualsmartcard/api/virtualsmartcard.cards.ePass.txt","virtualsmartcard/api/virtualsmartcard.cards.nPA.txt","virtualsmartcard/api/virtualsmartcard.utils.txt","virtualsmartcard/install.txt"],objects:{"virtualsmartcard.CardGenerator":{CardGenerator:[9,1,1,""]},"virtualsmartcard.CardGenerator.CardGenerator":{__generate_cryptoflex:[9,2,1,""],__generate_ePass:[9,2,1,""],__generate_iso_card:[9,2,1,""],__generate_nPA:[9,2,1,""],generateCard:[9,2,1,""],getCard:[9,2,1,""],readDatagroups:[9,2,1,""],setCard:[9,2,1,""]},"virtualsmartcard.CryptoUtils":{_makesalt:[11,3,1,""],append_padding:[11,3,1,""],calculate_MAC:[11,3,1,""],cipher:[11,3,1,""],crypto_checksum:[11,3,1,""],decrypt:[11,3,1,""],encrypt:[11,3,1,""],get_cipher:[11,3,1,""],get_cipher_blocklen:[11,3,1,""],get_cipher_keylen:[11,3,1,""],hash:[11,3,1,""],operation_on_string:[11,3,1,""],strip_padding:[11,3,1,""]},"virtualsmartcard.SEutils":{ControlReferenceTemplate:[12,1,1,""],Security_Environment:[12,1,1,""]},"virtualsmartcard.SEutils.ControlReferenceTemplate":{__replace_tag:[12,2,1,""],__set_algo:[12,2,1,""],__set_iv:[12,2,1,""],__set_key:[12,2,1,""],parse_SE_config:[12,2,1,""],to_string:[12,2,1,""]},"virtualsmartcard.SEutils.Security_Environment":{_set_SE:[12,2,1,""],compute_cryptographic_checksum:[12,2,1,""],compute_digital_signature:[12,2,1,""],decipher:[12,2,1,""],encipher:[12,2,1,""],generate_public_key_pair:[12,2,1,""],hash:[12,2,1,""],manage_security_environment:[12,2,1,""],parse_SM_CAPDU:[12,2,1,""],perform_security_operation:[12,2,1,""],protect_response:[12,2,1,""],verify_certificate:[12,2,1,""],verify_cryptographic_checksum:[12,2,1,""],verify_digital_signature:[12,2,1,""]},"virtualsmartcard.SWutils":{SwError:[13,4,1,""]},"virtualsmartcard.SWutils.SwError":{args:[13,5,1,""],with_traceback:[13,2,1,""]},"virtualsmartcard.SmartcardFilesystem":{DF:[14,1,1,""],EF:[14,1,1,""],File:[14,1,1,""],MF:[14,1,1,""],Record:[14,1,1,""],RecordStructureEF:[14,1,1,""],TransparentStructureEF:[14,1,1,""],get_indexes:[14,3,1,""],getfile_byrefdataobj:[14,3,1,""],isEqual:[14,3,1,""],make_property:[14,3,1,""],prettyprint_anything:[14,3,1,""],walk:[14,3,1,""],write:[14,3,1,""]},"virtualsmartcard.SmartcardFilesystem.DF":{append:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],content:[14,2,1,""],data:[14,2,1,""],decrypt:[14,2,1,""],dfname:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],remove:[14,2,1,""],select:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.EF":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.File":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.MF":{_selectFile:[14,2,1,""],append:[14,2,1,""],appendRecord:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],content:[14,2,1,""],create:[14,2,1,""],createFile:[14,2,1,""],current:[14,2,1,""],currentDF:[14,2,1,""],currentEF:[14,2,1,""],data:[14,2,1,""],dataObjectHandlingDecodeEncapsulated:[14,2,1,""],dataObjectHandlingDecodePlain:[14,2,1,""],dataUnitsDecodeEncapsulated:[14,2,1,""],dataUnitsDecodePlain:[14,2,1,""],decrypt:[14,2,1,""],deleteFile:[14,2,1,""],dfname:[14,2,1,""],encodeFileControlParameter:[14,2,1,""],encrypt:[14,2,1,""],eraseBinaryEncapsulated:[14,2,1,""],eraseBinaryPlain:[14,2,1,""],eraseRecord:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],firstSFT:[14,2,1,""],getDataEncapsulated:[14,2,1,""],getDataPlain:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],makeFirstSoftwareFunctionTable:[14,2,1,""],makeSecondSoftwareFunctionTable:[14,2,1,""],named_dfs:[14,2,1,""],parent:[14,2,1,""],putDataEncapsulated:[14,2,1,""],putDataPlain:[14,2,1,""],putdata:[14,2,1,""],readBinaryEncapsulated:[14,2,1,""],readBinaryPlain:[14,2,1,""],readRecordEncapsulated:[14,2,1,""],readRecordPlain:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],recordHandlingDecode:[14,2,1,""],remove:[14,2,1,""],searchBinaryEncapsulated:[14,2,1,""],searchBinaryPlain:[14,2,1,""],secondSFT:[14,2,1,""],select:[14,2,1,""],selectFile:[14,2,1,""],simpletlv_data:[14,2,1,""],updateBinaryEncapsulated:[14,2,1,""],updateBinaryPlain:[14,2,1,""],updateRecordEncapsulated:[14,2,1,""],updateRecordPlain:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writeBinaryEncapsulated:[14,2,1,""],writeBinaryPlain:[14,2,1,""],writeRecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.Record":{data:[14,2,1,""],identifier:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.RecordStructureEF":{__getRecords:[14,2,1,""],__getRecordsByIdentifier:[14,2,1,""],__getRecordsByNumber:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],eraserecord:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],hasFixedRecordSize:[14,2,1,""],hasSimpleTlv:[14,2,1,""],isCyclic:[14,2,1,""],lifecycle:[14,2,1,""],maxrecordsize:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],recordpointer:[14,2,1,""],records:[14,2,1,""],resetRecordPointer:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.TransparentStructureEF":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardSAM":{SAM:[15,1,1,""],get_referenced_cipher:[15,3,1,""]},"virtualsmartcard.SmartcardSAM.SAM":{FSdecrypt:[15,2,1,""],FSencrypt:[15,2,1,""],_get_referenced_key:[15,2,1,""],change_reference_data:[15,2,1,""],erase_SE:[15,2,1,""],external_authenticate:[15,2,1,""],generate_public_key_pair:[15,2,1,""],get_card_number:[15,2,1,""],get_challenge:[15,2,1,""],internal_authenticate:[15,2,1,""],manage_security_environment:[15,2,1,""],mutual_authenticate:[15,2,1,""],parse_SM_CAPDU:[15,2,1,""],perform_security_operation:[15,2,1,""],protect_result:[15,2,1,""],restore_SE:[15,2,1,""],set_MF:[15,2,1,""],set_asym_algorithm:[15,2,1,""],store_SE:[15,2,1,""],verify:[15,2,1,""]},"virtualsmartcard.TLVutils":{bertlv_pack:[16,3,1,""],bertlv_unpack:[16,3,1,""],decodeDiscretionaryDataObjects:[16,3,1,""],decodeExtendedHeaderList:[16,3,1,""],decodeHeaderList:[16,3,1,""],decodeOffsetDataObjects:[16,3,1,""],decodeTagList:[16,3,1,""],encodeDataOffsetObjects:[16,3,1,""],encodeDiscretionaryDataObjects:[16,3,1,""],encodebertlvDatalist:[16,3,1,""],pack:[16,3,1,""],simpletlv_pack:[16,3,1,""],simpletlv_unpack:[16,3,1,""],tlv_find_tag:[16,3,1,""],tlv_find_tags:[16,3,1,""],tlv_unpack:[16,3,1,""],unpack:[16,3,1,""]},"virtualsmartcard.VirtualSmartcard":{Iso7816OS:[17,1,1,""],SmartcardOS:[17,1,1,""],VirtualICC:[17,1,1,""],loadMitMFromPath:[17,3,1,""]},"virtualsmartcard.VirtualSmartcard.Iso7816OS":{SAM:[17,2,1,""],execute:[17,2,1,""],formatResult:[17,2,1,""],getATR:[17,2,1,""],getResponse:[17,2,1,""],makeATR:[17,2,1,""],makeThirdSoftwareFunctionTable:[17,2,1,""],mf:[17,2,1,""],powerDown:[17,2,1,""],powerUp:[17,2,1,""],reset:[17,2,1,""],seekable:[17,2,1,""]},"virtualsmartcard.VirtualSmartcard.SmartcardOS":{execute:[17,2,1,""],getATR:[17,2,1,""],powerDown:[17,2,1,""],powerUp:[17,2,1,""],reset:[17,2,1,""]},"virtualsmartcard.VirtualSmartcard.VirtualICC":{__recvFromVPICC:[17,2,1,""],__sendToVPICC:[17,2,1,""],connectToPort:[17,2,1,""],openPort:[17,2,1,""],run:[17,2,1,""],stop:[17,2,1,""]},"virtualsmartcard.cards":{cryptoflex:[19,0,0,"-"],ePass:[20,0,0,"-"]},"virtualsmartcard.cards.cryptoflex":{CryptoflexMF:[19,1,1,""],CryptoflexOS:[19,1,1,""],CryptoflexSAM:[19,1,1,""],CryptoflexSE:[19,1,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexMF":{_selectFile:[19,2,1,""],append:[19,2,1,""],appendRecord:[19,2,1,""],appendrecord:[19,2,1,""],bertlv_data:[19,2,1,""],content:[19,2,1,""],create:[19,2,1,""],createFile:[19,2,1,""],current:[19,2,1,""],currentDF:[19,2,1,""],currentEF:[19,2,1,""],data:[19,2,1,""],dataObjectHandlingDecodeEncapsulated:[19,2,1,""],dataObjectHandlingDecodePlain:[19,2,1,""],dataUnitsDecodeEncapsulated:[19,2,1,""],dataUnitsDecodePlain:[19,2,1,""],decrypt:[19,2,1,""],deleteFile:[19,2,1,""],dfname:[19,2,1,""],encodeFileControlParameter:[19,2,1,""],encrypt:[19,2,1,""],eraseBinaryEncapsulated:[19,2,1,""],eraseBinaryPlain:[19,2,1,""],eraseRecord:[19,2,1,""],erasebinary:[19,2,1,""],fid:[19,2,1,""],filedescriptor:[19,2,1,""],firstSFT:[19,2,1,""],getDataEncapsulated:[19,2,1,""],getDataPlain:[19,2,1,""],getMF:[19,2,1,""],getdata:[19,2,1,""],getpath:[19,2,1,""],lifecycle:[19,2,1,""],makeFirstSoftwareFunctionTable:[19,2,1,""],makeSecondSoftwareFunctionTable:[19,2,1,""],named_dfs:[19,2,1,""],parent:[19,2,1,""],putDataEncapsulated:[19,2,1,""],putDataPlain:[19,2,1,""],putdata:[19,2,1,""],readBinaryEncapsulated:[19,2,1,""],readBinaryPlain:[19,2,1,""],readRecordEncapsulated:[19,2,1,""],readRecordPlain:[19,2,1,""],readbinary:[19,2,1,""],readrecord:[19,2,1,""],recordHandlingDecode:[19,2,1,""],remove:[19,2,1,""],searchBinaryEncapsulated:[19,2,1,""],searchBinaryPlain:[19,2,1,""],secondSFT:[19,2,1,""],select:[19,2,1,""],selectFile:[19,2,1,""],simpletlv_data:[19,2,1,""],updateBinaryEncapsulated:[19,2,1,""],updateBinaryPlain:[19,2,1,""],updateRecordEncapsulated:[19,2,1,""],updateRecordPlain:[19,2,1,""],updatebinary:[19,2,1,""],updaterecord:[19,2,1,""],writeBinaryEncapsulated:[19,2,1,""],writeBinaryPlain:[19,2,1,""],writeRecord:[19,2,1,""],writebinary:[19,2,1,""],writerecord:[19,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexOS":{SAM:[19,2,1,""],execute:[19,2,1,""],formatResult:[19,2,1,""],getATR:[19,2,1,""],getResponse:[19,2,1,""],makeATR:[19,2,1,""],makeThirdSoftwareFunctionTable:[19,2,1,""],mf:[19,2,1,""],powerDown:[19,2,1,""],powerUp:[19,2,1,""],reset:[19,2,1,""],seekable:[19,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSAM":{FSdecrypt:[19,2,1,""],FSencrypt:[19,2,1,""],_get_referenced_key:[19,2,1,""],change_reference_data:[19,2,1,""],erase_SE:[19,2,1,""],external_authenticate:[19,2,1,""],generate_public_key_pair:[19,2,1,""],get_card_number:[19,2,1,""],get_challenge:[19,2,1,""],internal_authenticate:[19,2,1,""],manage_security_environment:[19,2,1,""],mutual_authenticate:[19,2,1,""],parse_SM_CAPDU:[19,2,1,""],perform_security_operation:[19,2,1,""],pezorform_security_operation:[19,2,1,""],protect_result:[19,2,1,""],restore_SE:[19,2,1,""],set_MF:[19,2,1,""],set_asym_algorithm:[19,2,1,""],store_SE:[19,2,1,""],verify:[19,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSE":{_set_SE:[19,2,1,""],compute_cryptographic_checksum:[19,2,1,""],compute_digital_signature:[19,2,1,""],decipher:[19,2,1,""],encipher:[19,2,1,""],generate_public_key_pair:[19,2,1,""],hash:[19,2,1,""],manage_security_environment:[19,2,1,""],parse_SM_CAPDU:[19,2,1,""],perform_security_operation:[19,2,1,""],protect_response:[19,2,1,""],verify_certificate:[19,2,1,""],verify_cryptographic_checksum:[19,2,1,""],verify_digital_signature:[19,2,1,""]},"virtualsmartcard.cards.ePass":{PassportSAM:[20,1,1,""],ePass_SE:[20,1,1,""]},"virtualsmartcard.cards.ePass.PassportSAM":{FSdecrypt:[20,2,1,""],FSencrypt:[20,2,1,""],__computeKeys:[20,2,1,""],_get_referenced_key:[20,2,1,""],change_reference_data:[20,2,1,""],derive_key:[20,2,1,""],erase_SE:[20,2,1,""],external_authenticate:[20,2,1,""],generate_public_key_pair:[20,2,1,""],get_card_number:[20,2,1,""],get_challenge:[20,2,1,""],internal_authenticate:[20,2,1,""],manage_security_environment:[20,2,1,""],mutual_authenticate:[20,2,1,""],parse_SM_CAPDU:[20,2,1,""],perform_security_operation:[20,2,1,""],protect_result:[20,2,1,""],restore_SE:[20,2,1,""],set_MF:[20,2,1,""],set_asym_algorithm:[20,2,1,""],store_SE:[20,2,1,""],verify:[20,2,1,""]},"virtualsmartcard.cards.ePass.ePass_SE":{_set_SE:[20,2,1,""],compute_cryptographic_checksum:[20,2,1,""],compute_digital_signature:[20,2,1,""],decipher:[20,2,1,""],encipher:[20,2,1,""],generate_public_key_pair:[20,2,1,""],hash:[20,2,1,""],manage_security_environment:[20,2,1,""],parse_SM_CAPDU:[20,2,1,""],perform_security_operation:[20,2,1,""],protect_response:[20,2,1,""],verify_certificate:[20,2,1,""],verify_cryptographic_checksum:[20,2,1,""],verify_digital_signature:[20,2,1,""]},"virtualsmartcard.utils":{APDU:[22,1,1,""],C_APDU:[22,1,1,""],R_APDU:[22,1,1,""],_make_byte_property:[22,3,1,""],hexdump:[22,3,1,""],inttostring:[22,3,1,""],stringtoint:[22,3,1,""]},"virtualsmartcard.utils.APDU":{_deldata:[22,2,1,""],_format_parts:[22,2,1,""],_getdata:[22,2,1,""],_setbyte:[22,2,1,""],_setdata:[22,2,1,""],data:[22,2,1,""]},"virtualsmartcard.utils.C_APDU":{"case":[22,2,1,""],CLA:[22,2,1,""],INS:[22,2,1,""],Lc:[22,2,1,""],Le:[22,2,1,""],P1:[22,2,1,""],P2:[22,2,1,""],_deldata:[22,2,1,""],_format_fields:[22,2,1,""],_format_parts:[22,2,1,""],_getdata:[22,2,1,""],_setbyte:[22,2,1,""],_setdata:[22,2,1,""],cla:[22,2,1,""],data:[22,2,1,""],effective_Le:[22,2,1,""],ins:[22,2,1,""],lc:[22,2,1,""],le:[22,2,1,""],p1:[22,2,1,""],p2:[22,2,1,""],parse:[22,2,1,""],render:[22,2,1,""]},"virtualsmartcard.utils.R_APDU":{SW1:[22,2,1,""],SW2:[22,2,1,""],SW:[22,2,1,""],_deldata:[22,2,1,""],_format_fields:[22,2,1,""],_format_parts:[22,2,1,""],_getdata:[22,2,1,""],_getsw:[22,2,1,""],_setbyte:[22,2,1,""],_setdata:[22,2,1,""],_setsw:[22,2,1,""],data:[22,2,1,""],parse:[22,2,1,""],render:[22,2,1,""],sw1:[22,2,1,""],sw2:[22,2,1,""],sw:[22,2,1,""]},virtualsmartcard:{CardGenerator:[9,0,0,"-"],ConstantDefinitions:[10,0,0,"-"],CryptoUtils:[11,0,0,"-"],SEutils:[12,0,0,"-"],SWutils:[13,0,0,"-"],SmartcardFilesystem:[14,0,0,"-"],SmartcardSAM:[15,0,0,"-"],TLVutils:[16,0,0,"-"],VirtualSmartcard:[17,0,0,"-"],utils:[22,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","exception","Python exception"],"5":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:exception","5":"py:attribute"},terms:{"0000":[12,20,22],"03119":2,"05_":3,"07_":3,"0x00":[7,12,20],"0x00000000":6,"0x00000001":6,"0x01":[2,7],"0x02":[2,7],"0x03":2,"0x04":[2,7],"0x0c":[14,19],"0x0d46":2,"0x0e":[14,19],"0x0f":[14,19],"0x10":2,"0x18d1":6,"0x3010":2,"0x40":19,"0x4ee1":6,"0x60":19,"0x80":[12,19,20],"0x8c7b":[6,7],"0x8e":[12,19,20],"0x9000":2,"0x9a":[2,12,19,20],"0x9e":[12,19,20],"0xa4":[7,14,19],"0xac":[12,19,20],"0xb0":[14,19],"0xb1":[14,19],"0xb2":[14,19],"0xb3":[14,19],"0xbc":[12,19,20],"0xca":[14,19],"0xcb":[14,19],"0xd0":[14,19],"0xd1":[14,19],"0xd2":[14,19],"0xd6":[14,19],"0xd7":[14,19],"0xda":[14,19],"0xdb":[14,19],"0xdc":[14,19],"0xdd":[14,19],"0xe0":[14,19],"0xe2":[14,19],"0xe4":[14,19],"0xff":[2,7,17,19],"0xxx":7,"1007":3,"1024":19,"107":3,"134010":6,"14443":4,"179":3,"188":3,"2010":3,"2011":3,"2012":3,"2019":6,"256":19,"27c3":3,"27th":3,"3083254":7,"3083586":7,"33392":3,"35963":[4,6],"35964":6,"3b80800101":4,"3uto6908061f9406236ze184226b":6,"4297":3,"512":19,"642":3,"65535":14,"7816":[0,6,12,17,19,20],"78166":7,"7_3":3,"978":3,"byte":[7,12,14,15,17,19,20,22],"case":[2,4,6,7,19,22],"class":[6,7,9,12,14,15,17,19,20,22],"default":[2,4,6],"enum":4,"f\u00fcr":3,"function":[3,7,11,14,15,17,19,20,22],"import":[1,6,7,23],"int":[2,4],"long":[4,7,14,19],"m\u00fcller":3,"new":[2,3,6,7,9,12,14,19,20],"null":6,"pl\u00f6tz":6,"public":[3,6,12,15,19,20],"return":[0,7,11,12,13,14,15,16,17,19,20,22],"short":[14,22],"static":[2,14,17,19,20],"switch":[2,6,12,19,20],"throw":7,"true":[14,19,22],"try":[3,7],"universit\u00e4t":3,"while":7,Bus:2,But:[6,7],DFs:[14,19],DGs:6,For:[5,6,14,19],INS:[2,22],Its:7,Near:1,One:[12,20],QES:6,SWs:7,The:[0,1,2,3,4,5,6,7,11,12,14,15,17,19,20,22],Then:6,There:[7,12],Use:[2,4,6],Used:19,Using:[1,4],Will:7,With:[0,4],__computekei:20,__generate_cryptoflex:9,__generate_epass:9,__generate_iso_card:9,__generate_npa:9,__getrecord:14,__getrecordsbyidentifi:14,__getrecordsbynumb:14,__init__:7,__recvfromvpicc:17,__replace_tag:12,__repr__:22,__sendtovpicc:17,__set_algo:12,__set_iv:12,__set_kei:12,__str__:22,__traceback__:13,_deldata:22,_format_field:22,_format_part:22,_get_referenced_kei:[15,19,20],_getdata:22,_getsw:22,_make_byte_properti:22,_makesalt:11,_selectfil:[14,19],_set_s:[12,19,20],_setbyt:22,_setdata:22,_setsw:22,a0000002471001:6,a000000397425446590201:0,a000000527210101:0,abl:[1,6,9],about:[6,7],abov:6,academictitl:6,acardemul:[0,4],access:[0,2,4,5,6,12,15,17,19,20],accessori:1,accord:[7,12,14,17,19,20],accordingli:6,act:[6,7],activ:4,actual:[4,5,7],add:[2,4,6,7,12,23],add_data:7,added:[15,19,20],addit:[4,6],addition:[2,4,6],address:6,adjust:[12,20],adress:22,af_inet:7,against:[4,5,6],agreement:[12,19,20],aid:4,aid_list:4,algo:11,algorithm:[11,12,15,19,20],all:[4,5,6,7,12,14,15,16,19,20,23],allow:[0,1,4,5,6],alreadi:12,also:[0,1,2,4,6,7,9,14,19],altern:[2,3,4,6],although:6,analyz:4,anchor:[6,12,19,20],andrea:3,android:[1,3,6,7],angriff:3,ani:[0,1,2,4,5,6,7,15,19,20],anna:6,annex:20,anoth:2,answer:[17,19],anywai:20,apart:3,apdu:[0,1,2,4,6,7,12,14,15,17,19,20,22],api:[6,7],app:[0,1,4,5,6,7],appear:[2,6],append:[11,12,14,19],append_pad:11,appendrecord:[14,19],appl:6,applet:0,applic:[0,1,2,4,5,6,17],applicationidentifi:[14,19],appropri:[1,12,19,20],apt:[2,6],architectur:6,arg:[7,13,14,17,19,22],argument:6,argz:[14,19],around:4,arrai:6,articl:6,asctim:7,aspect:3,assign:[14,22],assignlogicalchannel:[17,19],associ:[12,20],assum:7,asym:12,atexit:7,atr:[4,7,17,19],attach:[0,1,5],attack:[4,5,7],attempt:6,attribut:[14,19,22],auf:3,authent:[12,15,19,20],authenticate_head:[12,19,20],authentisierung:3,author:[6,23],autodetect:[2,4],automat:[2,6,17,19],autoreconf:[2,4,6],autotool:6,auxiliari:[2,4,6],avail:[0,2,3,4,5,6,7,14,19],avoid:7,bac:6,back:[1,4,7,17],backend:4,bar:5,base:[0,2,4,9,12,13,14,15,17,19,20,22],basic:20,basicconfig:7,basiert:3,been:7,befor:7,begin:[14,19],being:6,below:[4,6],ber:[14,19],berlin:3,bertlv:16,bertlv_data:[14,19],bertlv_pack:16,bertlv_unpack:16,besitz:3,best:[4,7],better:7,between:[0,2,6,17,19],big:[7,12,19,20],bin:6,binari:[6,14,19,22],birthnam:6,bit:[11,14,19],bitmask:[12,19,20],bitstr:[17,19],bix:6,bixvread:[6,23],bixvreaderinstal:[6,23],bleed:[2,4,6],block:[7,11,15,19,20],blocklen:11,bndl:6,bool:[14,17,19],bootstrap:6,both:2,box:2,bring:6,brows:[0,3,5],bsi:2,buffer:7,bug:[2,4,6,7],build:[0,1,2,4,5],building_gadget_usb_modul:2,built:[0,2,4,5,6],bund:2,bundl:6,bz2:2,c_apdu:22,ca_kei:[6,7,17],calcul:[4,11,17,19,20],calculate_mac:11,call:[7,14],camera:[0,5],can:[0,2,3,4,5,6,7,14,19],capabl:[14,17,19],capdu:[12,15,17,19,20],card:[8,9,12,14,15,17,19,20],card_typ:[7,9,17],cardaccess:6,cardconnectionexcept:7,cardgener:[7,8],cardnumb:15,cardsecret:15,cardsecur:6,cardtyp:7,cbc:11,ccc:3,ccid:3,cct:12,cer:[6,23],cert:6,certif:[1,6,12,19,20,23],certifc:6,certmgr:[6,23],cfbundledevelopmentregion:6,cfbundleexecut:6,cfbundleinfodictionaryvers:6,cfbundlenam:6,cfbundlepackagetyp:6,cfbundlesignatur:6,cfbundlevers:6,challeng:[15,19,20],chang:[2,4,6,15,19,20],change_reference_data:[15,19,20],channelid:6,chao:3,charact:[17,19],check:[2,4,6,7,15,19,20],checksum:[11,12,19,20],chip:6,chipkartenles:3,choic:5,choos:[0,1,4,5,6],chosen:6,chr:7,chv:[15,19,20],cipher:[11,15,19,20],cipherspec:11,citi:6,cla:[2,22],cleanup:7,click:[6,23],client:2,clone:[0,1,2,3,4,5,6],close:7,club:3,code:[0,2,5,6,7,12,14,16,19,20,22],codeproject:6,com:[0,1,2,3,4,5,6,7],combin:[2,4,12],come:7,command:[0,1,2,4,6,7,12,14,15,17,19,20,22],commandchaing:[17,19],commandlin:[6,23],commun:[0,1,3,4,5,6,7,17],communityid:6,compar:19,compat:2,compil:[0,1,2,4,5,6],complet:[4,6,7],complex:7,comput:[0,3,5,6,11,12,19,20,23],compute_cryptographic_checksum:[12,19,20],compute_digital_signatur:[12,19,20],concern:[3,4,5],conf:[6,7],config:[2,4,5,6,12],configur:[0,2,4,5,7,12],congress:3,connect:[0,1,3,4,5,6,7,17],connector:[4,6],connecttoport:[7,17],consecut:22,constantdefinit:8,contact:[4,6],contactless:0,contain:[6,12,14,15,19,20],content:[7,9,12,14,19,22],context:7,contribut:[0,1,2,4,5,6],control:[12,14,19,20],controlreferencetempl:12,convent:[17,19],copyright:6,core:2,correct:[6,7,14,15,19,20],correctli:[15,19],correspond:[7,15],could:[6,23],counter:[11,15,19,20],counterpart:2,countri:6,cover:[4,6],craft:2,creat:[2,3,6,14,19],createfil:[14,19],critic:7,cross:4,crt:[12,20],crypt:11,crypto_checksum:11,cryptoflex:[6,7,8,9,18],cryptoflexmf:[7,19],cryptoflexo:[7,19],cryptoflexs:19,cryptoflexsam:19,cryptograph:[11,12,19,20],cryptotokenkit:6,cryptoutil:[8,15],curl:6,current:[0,3,4,6,9,11,12,14,15,19,20,23],currentdf:[14,19],currentef:[14,19],custom:2,custom_url:7,cvca:[6,7,17],cyanogenmod:[0,5],cyberflex:[6,11],cycl:[14,19],cyclic:14,d2760001240102000000000000010000:0,daemon:6,data:[0,2,4,5,6,7,11,12,14,15,16,17,19,20,22],datacod:14,datagroup:9,datagroupnam:6,datagroupvalu:6,datalist:[14,16],dataobjecthandlingdecodeencapsul:[14,19],dataobjecthandlingdecodeplain:[14,19],dataset:[6,7],datasetfil:[6,7,9,17],dataunitsdecodeencapsul:[14,19],dataunitsdecodeplain:[14,19],datefmt:7,dateofbirth:6,dateofexpiri:6,dcb:[14,19],debian:[2,4,6],debug:[4,6],deciph:[12,19,20],decipher:[12,19,20],decive_unit:6,decod:[14,19],decodediscretionarydataobject:16,decodeextendedheaderlist:16,decodeheaderlist:16,decodeoffsetdataobject:16,decodetaglist:16,decor:14,decrement:[15,19,20],decrypt:[11,14,15,19,20],dedic:14,def:7,default_s:15,default_uid:2,defin:[2,15,20],deleg:[0,1,6],deletefil:[14,19],den:3,depend:[0,2,4,5,6,11,14,19,20,22],deploi:[0,1,5],deriv:[7,20],derive_kei:20,des3:11,des:3,describ:6,descriptor:[14,19],design:7,despit:4,destroypacechannel:2,detail:[6,7],detect:5,dev:[2,6],develop:[0,1,4,5],devic:[0,1,2,6,23],devicenam:6,devices_compatibility_matrix:4,devmgmt:6,dfname:[14,19],dfselectionbyapplication_implicit:[14,19],dfselectionbyfid:[14,19],dfselectionbyfulldfnam:[14,19],dfselectionbypartialdfnam:[14,19],dfselectionbypath:[14,19],dg12:6,dg14:6,dg15:6,dg16:6,dg21:6,dialog:1,dict:6,dictionari:12,die:3,die_gesamte_technik_ist_sich:3,differ:[3,6,7,9,11,12,20],digit:[12,19,20],direct:[17,19],directconvent:[17,19],directli:[4,6],directori:[2,6,7],disabl:6,disable_check:[7,17],disconnect:7,discuss:[4,5],disk:[7,9],dispatch:[15,17],distanc:4,distribut:4,dlitz:6,do_encrypt:11,doc:[6,14],docstr:14,doctyp:6,document:7,documenttyp:6,doe:[4,6,7,20],doi:3,dominik:[3,4],done:[4,7],doubl:[6,23],down:[7,17,19],driver:[2,5,6],droid:[0,5],dsa:[15,19,20],dst:12,dtd:6,dummy_hcd:2,dylib:6,eac:6,each:14,earlier:6,echo:[2,6],edg:[2,4,6],edit:7,editor:3,ef_cardaccess:[6,7,17],ef_cardsecur:[6,7,17],effective_l:22,efstructure_cyclic_nofurtherinfo:7,efstructure_linear_fixed_:7,efstructure_linear_variable_:7,efstructure_transpar:7,eid:3,einem:3,either:[0,12,14,19,20],electron:[0,6],element:6,elementari:14,elif:7,els:7,email:6,emul:[3,7,17],enabl:[2,3,4,6],enciph:[12,19,20],encipher:[12,19,20],encod:[6,7,12],encodebertlvdatalist:16,encodedataoffsetobject:16,encodediscretionarydataobject:16,encodefilecontrolparamet:[14,19],encrypt:[7,9,11,14,15,19,20],end:[12,14,19,20],endian:7,engin:3,english:6,ensur:6,enter:[6,15,19,20],entir:7,entri:2,environ:[4,6,12,15,19,20],epass:[7,8,18],epass_s:20,epassport:20,equal:[14,15,19,20],eras:[12,14,15,19,20],erase_s:[15,19,20],erasebinari:[14,19],erasebinaryencapsul:[14,19],erasebinaryplain:[14,19],erasefrom:14,eraserecord:[14,19],eraseto:14,erik:0,eriknellessen:0,err_incorrectparamet:7,err_wronglength:7,error:[2,7,14,19],erweiterung:3,esign:6,esign_ca_cert:[6,7,17],esign_cert:[6,7,17],esign_kei:[7,17],especi:[4,5],establish:[5,6],establishpacechannel:2,establishpacechannelinput:2,establishpacechanneloutput:2,etc:[6,7],even:[7,14,19],everi:6,exampl:[2,4,6,22],except:[7,13],exe:[6,23],execut:[6,7,17,19],exist:[0,4,7],exit:[2,4,6,7],expect:7,explain:4,explor:6,expon:19,extend:[3,6,7],extended_length:17,extendedl:[17,19],extens:1,extern:[6,12,19,20],external_authent:[15,19,20],extra_fci_data:14,f276a288bcfba69d34f31001:0,fabio:6,fail:7,fals:[6,7,14,16,17,19,22],familynam:6,far:6,fci:[14,19],fdb:7,fdid:[0,5],featur:3,feature_execute_pac:2,feature_modify_pin_direct:2,feature_verify_pin_direct:2,feedback:[0,1,2,4,5,6],feel:[6,23],fetch:[0,1,5,7],fid:[7,14,19],field:[1,12,19,20,22],file:[0,2,4,5,6,7,9,14,15,17,19],filedescriptor:[7,14,19],filenam:2,filesystem:[9,15,19,20],fill:9,find:[2,4,6,7,16],firewal:7,first:[6,7,14,19],firstsft:[14,19],firstsoftwar:[14,19],fix:14,fmd:[14,19],focu:6,follow:[0,2,3,4,5,6,7,14,19,23],foreground:4,form:[4,9,11,15,19,20],format:7,formatresult:[7,17,19],forwar:4,forward:[2,7,17],forwared:2,foss:3,fragment:2,framework:6,frank:[2,3,4],frankmorgn:[0,1,2,3,4,5,6],fraunhof:3,free:[6,23],freerunn:2,friendlynam:6,from:[0,1,2,3,4,5,6,7,9,12,14,15,17,19,20,23],fsdecrypt:[15,19,20],fsencrypt:[15,19,20],fukuchi:6,full:[4,5,22],futur:[15,19,20],g_ether:2,gadget:2,gear:1,gener:[0,2,4,5,6,7,9,11,12,14,15,19,20,22],generate_public_key_pair:[12,15,19,20],generatecard:9,german:[0,2,4,5,6],gertrud:6,gesamt:3,get:[2,4,6,7,9,14,19],get_card_numb:[15,19,20],get_challeng:[15,19,20],get_ciph:11,get_cipher_blocklen:11,get_cipher_keylen:11,get_index:14,get_referenced_ciph:15,getatr:[7,17,19],getcard:[7,9],getdata:[14,19],getdataencapsul:[14,19],getdataplain:[14,19],getfile_byrefdataobj:14,getmf:[14,19],getpath:[14,19],getreaderpacecap:2,getrespons:[17,19],getsocknam:7,gg487509:2,gid:0,gidsapplet:0,giovanni:3,git:[0,1,2,3,4,5,6],github:[0,1,2,3,4,5,6],give:[6,7],given:[4,7,12,14,15,16,17,19,20],givennam:6,global:[12,15,19,20],gmail:2,gnu:[2,4,6],gpl:[0,1,2,4,5,6],group:[6,7],guess:6,gui:6,guid:[1,3,6],guidelin:1,guidelines_on_connecting_gears2_device_using_wifi_151222:1,handi:3,handl:[3,7,14,19],handleinpdu:7,handleoutpdu:7,handler_test:[6,7],handlertest:7,handlertesto:7,hardwar:[0,2,4,5,6],has:[0,2,4,5,7,14,19],hasfixedrecords:14,hash:[11,12,19,20],hashmap:15,hashmethod:11,hassimpletlv:14,have:[0,1,2,3,4,5,6,7],hce:[0,1],header:[2,4,12,19,20],header_authent:[15,19,20],headless:1,heidelberg:3,help:[2,4,6],henryk:6,here:[2,3,4,6,7],hexdump:22,histchar:[17,19],histor:[14,17,19],hmac:11,holder:6,honor:14,hook:7,host:[0,2,4,5,6,7,17],hostnam:[4,6,7],how:[2,4,7],html:[0,1,2,3,5,6],http:[0,1,2,3,4,5,6,7],humboldt:3,icao:[9,11,20],icc:20,ident:[0,6],identifi:[0,4,14,15,19,20],identifier_first:14,identifier_last:14,identifier_next:14,identifier_previ:14,iec:4,ifd:6,ifdcap:6,ifdfriendlynam:6,ifdmanufacturerstr:6,ifdproductid:6,ifdproductstr:6,ifdprotocolsupport:6,ifdread:6,ifdvendorid:6,ifdversionnumb:6,imag:6,impact:[4,5],implement:[0,2,6,12,19,20],implicitli:7,importerror:7,inact:6,includ:[0,1,3,4,6,7,12,15,19,20],include_fil:16,incom:[4,6],incomplet:6,indent:[14,22],index:[4,14,15,19],index_curr:[14,19],index_htm:2,indic:[12,19,20],info:[2,6,7],infoplist:6,inform:[3,12,14,15,19,20],informat:3,informatik:3,informationstechnologi:3,ini:6,init:[0,2,4,6],initi:[0,1,2,6,7,11,12,14,20],inpterpret:7,input:11,ins2handl:[17,19],ins:[7,17,19,22],insert:4,insight:7,insmod:2,inspect:6,instal:23,instanc:[14,16],instead:[0,6,22],institut:3,instruct:[14,19],integ:[14,19],integr:6,interact:[6,9],interfac:[0,2,5,6,17,19],intermediari:2,intern:[12,15,19,20],internal_authent:[15,19,20],internet:6,interrupt:2,inttostr:[7,22],invalid:[6,7,15,19,20],invers:[17,19],invok:[12,19,20],involv:14,ioanni:3,iscycl:14,isequ:14,isinst:7,iso7816:[6,7],iso7816o:[7,17,19],iso:[0,4,6,12,17,19,20,22],isoapplet:0,issimpletlv:[14,19],issu:[2,4,6],issuingst:6,ist:3,item:14,its:[2,4,6,7,12,14,19,20],itself:7,java:0,jcardsim:0,jen:3,join:7,jump:6,kdir:2,kei:[6,7,11,12,15,19,20],kernel:2,keycard:0,keytyp:[15,19,20],killal:6,kind:[0,1,2,4,5,6,12,19,20],kitkat:[0,5],know:[6,7],knowledg:7,krontiri:3,kwarg:22,l898902c:6,last:[11,14,19],lastcommandoffcut:7,lastcommandsw:7,later:[2,4,6,7,19],latest:[2,3,4,6],layer:6,lead:6,learn:6,least:6,lectur:3,len:[7,17,19],len_extend:22,length:[7,11,12,14,16,19,22],less:[4,6],let:7,level:7,levelnam:7,lian:3,lib:[2,4,6],libccid:2,libeac:6,libexec:6,libifdvpcd:6,libopensc:2,libpath:6,libpcsclit:6,libqrencod:6,librari:[3,6],libtool:[2,4,6],licens:[0,1,2,4,5,6],life:[14,19],lifecycl:[14,19],like:[2,4,6],line:[2,6,22],linelen:22,link:[2,6],linuxtag:3,list:[2,4,6,7,14,16,19],listen:4,listread:7,lite:[4,6],littl:7,load:[2,6,7],loadmitmfrompath:[7,17],local:[2,6,23],local_ip:7,localhost:6,localmachin:[6,23],locat:[3,4],log:[6,7],logginglevel:[7,17],logic:14,look:[0,2,3,4,6,7,14],loop:17,lost:7,mac:[11,12,19,20],machin:[2,6,20],maco:6,magic:7,mai:[0,1,4,6,11,12,15,19,20],mail:6,main:[4,6,7,17],maintain:17,make:[2,4,6,22],make_properti:14,makeatr:[17,19],makefil:2,makefirstsoftwarefunctiont:[14,19],makesecondsoftwarefunctiont:[14,19],makethirdsoftwarefunctiont:[17,19],man:6,manag:[6,7],manage_security_environ:[12,15,19,20],mani:16,manipul:[12,19,20],manual:[0,1,5],map:[7,19],marix:6,mass:6,master:[3,14,15,17,19],match:[4,6,14],max:[11,17,19],maximum:[14,15,19,20],maximumchannel:[17,19],maxl:[7,19],maxrecords:[7,14],maxsiz:14,mayb:2,mean:[6,7,11,12,15,17,19,20],mechan:[12,19,20],media:3,memori:[15,19,20],messag:[6,7,11,12,15,17,19,20],meta:22,method:[9,12,15,19,20],microsoft:[2,4,6],middl:6,middlewar:2,might:[7,15,19,20],min:7,mingw:4,miss:[2,4,6],mitm:[6,7],mitmpath:[7,17],mkdir:2,mmc:6,mmo11:3,mo10:3,mobil:[2,3],mobilen:3,mode:[2,4,5,6,7,11,12,15],modern:[2,4],modif:[2,7],modifi:[2,4,7,12],modprob:2,modul:[2,4,6,8,18],momr12:3,mor12:3,more:[0,1,2,4,5,6,7,12,20],morgner:[2,3,4],most:[2,4,7,16],mostli:7,mount:2,mous:6,mrtd:[6,20],mrz:[6,9],msc:6,msdn:2,mse:12,msg:[7,17,19],msi:[6,23],multipl:[2,6,7],must:[2,4,5,6,7,9,11,12,14,19,20],mutual_authent:[15,19,20],mutual_challeng:[15,19,20],name:[4,6,14,19,22],named_df:[14,19],nation:6,nativ:[1,4],necessari:4,need:[0,1,2,4,5,6,7,15,19,20],neither:[14,19],nellesson:0,neo:2,net:[0,6],network:[5,7],neuen:3,new_fil:7,newer:[0,5],newli:14,newlist:14,newtlvlist:[14,19],newvalu:[14,16],next:[1,14,19],nfc:[0,1,3,4,5,6,7],nice:22,nobodi:20,nofurtherinfo:7,none:[7,9,11,14,15,16,17,19,20,22],nor:[14,19],normal:[7,19],normal_rest:7,note:[3,7,14,17,19,20],noth:[12,19,20],notif:2,now:[2,4,6,15,19,20],npa:[0,3,6,7,8,18],npao:7,num_id:14,num_result:16,number:[2,4,6,7,14,15,19,20],numread:6,oath:0,obj:2,object:[7,9,12,14,15,17,19,20,22],occur:[14,19],odd:[14,19],oep10:3,oepen:[3,4],off:[2,7],offer:3,offset:[14,16,19,22],old:[3,14],older:[2,3,4,6],om11:3,omit:[17,19],onc:[6,23],one:[4,5,12,14,19,20,22],onetimewrit:14,onli:[2,4,7,11,14,19,20],open:[0,5,6,7,17],openmoko:[2,4,6],openpac:6,openpcd:4,openpgp:0,openpicc:4,openport:[7,17],opensc:[2,6],openssl:2,oper:[4,11,12,14,19,20],operation_on_str:11,option:[2,4,6,9,11,17,19],ord:7,order:[2,7,12,14,15,19,20],org:[0,1,2,4,5,6],other:[2,5,6,12,15,19,20],otherwis:[4,12,14,19],ottavi:6,our:[0,1,2,3,4,5,6,7,22],out:[2,7],output:6,over:[4,5,6,7],overview:[6,7],overwrit:[7,22],own:[0,1,6],pace:[0,2,6],pacecap:2,pack:16,pad:[11,12,19,20],padding_class:11,pair:[12,20],parallel:6,param:14,paramet:[11,12,14,15,17,19,20],parent:[7,14,19],pariti:20,pars:[7,12,15,19,20,22],parse_se_config:12,parse_sm_capdu:[12,15,19,20],part:[3,6,14],partial:[14,19],pass:[7,17],passport:[0,6,9,11,20],passportsam:20,patch:2,path:[6,7,9,14,15,17,19],pbkdf2:6,pc_to_rdr_secur:2,pc_to_rdr_xfrblock:2,pcd:[6,7,17],pcsc:[0,4,6],pcsc_scan:6,pcscd:[6,7],pcsclite:[4,6],pdf:[1,3],perform:[2,4,6,12,17,19,20],perform_bac:6,perform_security_oper:[12,15,19,20],period:6,permiss:[0,5],persist:9,personalauswei:3,peter:3,pezorform_security_oper:19,phone:[6,7],photo:9,php:4,physic:7,piec:14,pil:6,pin:[0,2,15,19,20],pip:6,pipe:[2,6],pkc:6,pkg:[2,4,6],pkg_config_path:4,pkgconfig:4,pki:20,place:6,placeofbirth:6,plain:[12,15,19,20],platform:[0,1,2,4,5,6],pleas:[0,1,2,4,5,6],plist:6,plug:6,point:14,pointer:14,port:[4,6,7,17],portabl:2,posess:[15,19,20],possibl:[0,2,4,6],power:[7,17,19],powerdown:[7,17,19],powerup:[7,17,19],predic:6,prefix:4,prepend:[11,14,19],present:2,pretend:6,pretti:7,prettyprint_anyth:14,previou:[14,19],previous:[7,12,20],print:[2,4,5,6,7],print_ascii:7,privaci:3,privat:[6,12,15,19,20],probabl:[2,4,6],problem:6,process:[0,1,4],produc:17,product:[2,6],program:[1,3,6,7],programmingguide_accessori:1,project:[0,1,2,3,4,5,6],prompt:9,prop:[14,22],properti:[14,17,19,22],propertylist:6,proprietari:[2,6,14],protect:[0,6,12,15,19,20],protect_respons:[12,19,20],protect_result:[15,19,20],protocol:[0,1,6,7,17,19,20],prove:[15,19,20],provid:[6,7,12,20],pseudo:2,pseudorandom:11,publikationen:2,publish:[6,23],puk:[15,19,20],purpos:4,put:[14,19],putdata:[14,19],putdataencapsul:[14,19],putdataplain:[14,19],pwd:2,pwendland:0,pycryptodom:6,pycryptodomex:6,pypa:6,pypi:6,pyreadlin:6,pyscard:[6,7],python2:6,pythonwar:6,qrcode:7,qrencod:6,qrserver:7,quickli:6,quit:7,r_apdu:[7,22],rais:[7,14,19],random:[2,15,19,20],randomli:6,rapdu:[7,17],raw:[12,19,20],rdr_to_pc_datablock:2,read:[6,7,9,14,19,20],readabl:20,readbinari:[14,19],readbinaryencapsul:[14,19],readbinaryplain:[14,19],readdatagroup:[7,9],reader0:6,reader1:6,reader2:6,reader:[0,1,3,4,6,7],readernum:[7,17],readlin:6,readpass:6,readrecord:[14,19],readrecordencapsul:[14,19],readrecordplain:[14,19],real:[2,4,6,7],realiz:4,recalculate_length:16,receiv:[4,7,17],recent:2,recogn:7,reconnect:7,record:[7,14,19],recordhandlingdecod:[7,14,19],recordidentifiersupport:[14,19],recordnumbersupport:[14,19],recordpoint:14,recordstructureef:[7,14,19],recurs:[0,2,4,6,14],redlich:3,ref:14,refdataobj:14,refer:[12,14,15,19,20],referenc:[15,19,20],regard:[14,19],regist:[1,4,6,7],rel:6,relai:[0,3,5,6,7],relaymiddleman:7,relayo:7,releas:[2,3,4,6],religiousartisticnam:6,remot:[0,3,4,6],remotesmartcardread:[0,5],remov:[6,12,14,19,20,23],render:[7,22],replac:[6,12,14,15,19,20],report:[2,4,6],repositori:[0,2,3,4,5,6],repres:22,represent:14,request:[3,6,7,14],requestedtl:[14,19],requir:[0,2,5,6,7,20],requiremet:6,res:4,research:3,reset:[7,14,15,17,19,20],resetrecordpoint:14,residencepermit1:6,residencepermit2:6,resp_data:20,respect:7,respons:[0,1,2,4,6,7,9,12,14,15,17,19,20,22],respsons:17,ressourc:1,rest:7,restart:6,restor:[12,15,19,20],restore_s:[15,19,20],result:[7,12,14,16,17,19,20],retri:[15,19,20],retriev:[15,19,20],revers:[6,7],rfid:4,rfu:[15,19,20],right:[15,19,20],root:[6,23],routin:6,rpc_type:6,rsa:[15,19,20],run:[0,2,4,5,7,17],runtim:0,russello:3,sai:6,said:7,salt:11,sam:[7,9,12,14,15,17,19,20],same:[6,7],samsung:1,saniti:4,sar:3,save:6,scan:[0,5,7],scanner:5,scardcontrol:2,scardtransmit:2,schmidt:3,scienc:3,script:6,sdk:[0,1,5,6],search:[14,19],searchbinaryencapsul:[14,19],searchbinaryplain:[14,19],second:[14,19],secondsft:[14,19],secondsoftwar:[14,19],secret:[11,15,19,20],section:4,secur:[2,3,6,7,12,15,17,19,20],security_environ:[12,15,19,20],see:[2,4,6,7,14,17,19],seed:20,seekabl:[7,17,19],seid:[12,15,19,20],select:[0,1,4,5,7,11,14,17,19],select_appl:6,selectfil:[14,19],self:[7,13],send:[1,4,7,11,12,17,19,20],sendcommandapdu:7,sent:[4,7],seper:6,sequenc:[11,20],sequenti:14,serial:[2,6],server_sock:7,servic:[1,6],session:7,session_kei:11,set:[4,6,9,12,13,14,17,19,20],set_asym_algorithm:[15,19,20],set_mf:[15,19,20],setcard:9,setter:[15,19,20],settimeout:7,seutil:[8,15,19,20],sever:[2,4,6],sex:6,shall:[6,12,19,20],shell:6,shiguo:3,ship:[2,4,6],shortfid:14,shortfidsupport:[14,19],should:[4,6,7,12,14,19,20],show:6,sicher:3,sicherheitsanalys:3,sigkil:6,sign:[6,12,19,20,23],signatur:[6,12,19,20],similar:7,simpl:[0,6,7,14,19],simpletlv:16,simpletlv_data:[14,19],simpletlv_pack:16,simpletlv_unpack:16,simpli:[6,7],simul:[0,1],sinc:2,sit:3,six:12,size:[11,14,19],sln:6,slot:6,sm_header:[12,19,20],small:6,smart:17,smartcard:[3,5,6,7,14,17],smartcardfilesystem:[8,19],smartcardo:[7,17,19],smartcardsam:[8,19,20],smartcardservic:6,smartphon:[0,3,5],smartwatch:0,snapshot:2,social:3,sock:7,sock_dgram:7,socket:[0,6,7,17],softwar:[2,4,5,6,7,14,17,19],solut:6,some:[2,3,7],someth:6,sourc:[0,1,2,5,7],sourceforg:[2,4,6,7],space:22,special:[2,5],specif:[7,15,19,20],specifi:[4,6,7,11,12,14,15,16,19,20],specifii:6,springer:3,spsmartcardsdatatyp:6,spusbdatatyp:6,src:[2,4],ssc:[11,20],stabl:6,stack:2,stai:4,standalon:6,standard:[2,4,6,7,20],start:[2,4,6,14],startup:6,state:14,statu:[2,14,19,22],step:6,still:[2,3,4,6],stop:[6,7,17],storag:[6,9],store:[6,12,15,19,20,23],store_s:[15,19,20],str:7,straight:7,street:6,string1:11,string2:11,string:[2,4,6,7,11,12,14,15,16,17,19,22],stringtoint:[7,22],strip:11,strip_pad:11,structur:[14,16],studio:[0,4,5,6],stuttgart:3,subdir:2,submodul:[0,1,2,4,6],subset:2,subsystem:6,success:[15,19,20],successful:7,successfulli:6,sudo:[2,6],suggest:[0,1,2,4,5,6],suitabl:11,sun:4,support:[2,4,6,9,11,12,19],suppos:6,sure:[6,7],sw1:[2,7,22],sw2:[2,7,22],swerror:[7,13],swutil:8,sym:12,syntax:6,sys:7,sysconfdir:6,system:[2,3,4,5,6,7,15],system_profil:6,systemroot:6,szenario:3,t15:[17,19],tabl:[12,14,17,19,20],tag:[6,12,14,16,19,20],tagungsband:3,tai:[17,19],taj:[17,19],take:[14,15,19,20],taken:6,tar:2,target:6,tbi:[17,19],tbj:[17,19],tcardemul:1,tci:[17,19],tcj:[17,19],tck:[17,19],tcp:[6,14,19],tcp_port:6,tdi:[17,19],tech:1,techdoc:1,technik:3,technischerichtlinien:2,telecommun:3,templat:[7,12,14,19,20],term:6,termin:[0,4,12,15,19,20],test:[0,1,2,4,5,23],tester:6,text:19,than:[0,1,2,4,5,6],thehistor:[14,19],thei:[6,11,12],them:[0,17],themselv:3,therefor:9,thesi:3,thi:[2,4,5,6,7,9,11,12,14,15,17,19,20,22,23],thing:[7,14],third:[17,19],those:7,through:[0,2,6],time:[2,4,6,7],tip:1,titl:4,tizen:[0,3],tlv:[12,14,16,19,20],tlv_data:16,tlv_find_tag:16,tlv_unpack:16,tlvutil:8,tmp:4,to_str:12,togeth:[0,4],tool:[1,2,4,6],toolset:6,tr03119:2,tracker:[0,1,2,4,5,6],tradit:[5,6],transmiss:[17,19],transmit:[0,2,4,7],transpar:14,transparentstructureef:[7,14,19],tri:6,trust:[2,6,12,19,20,23],trustedpublish:[6,23],tupl:[14,16,19],two:[14,19],txt:6,type:[3,6,9,11,12,15,19,20],ubuntu:[2,4,6],udc:2,ulrich:3,umbrella:3,umdf:6,umfeld:3,unam:2,und:3,under:[15,19,20],understood:15,unfamiliar:[2,4,6],unit:[14,19],univers:2,unix:5,unknown:[7,14,19],unpack:16,unplug:6,unprotect:[12,15,19,20],unprotected_result:[15,19,20],until:[15,19,20],updat:[0,2,4,6,14,19],updatebinari:[14,19],updatebinaryencapsul:[14,19],updatebinaryplain:[14,19],updaterecord:[14,19],updaterecordencapsul:[14,19],updaterecordplain:[14,19],url:[3,6],usabl:[2,3],usag:6,usb:[3,6],use:[0,1,2,4,5,6,7,11,12,14,15,17,19,20],used:[0,2,4,5,6,7,9,11,12,14,15,19,20,22],useful:1,user:[2,6,9,15,19,20,23],uses:[0,1,2,4,6,20],using:[0,1,2,3,4,5,6,7,12,14,15,19,20],usr:[2,6],usual:[2,6,7,14],utf:6,util:[6,8],utoeriksson:6,valid:[6,7,15,19,20],valu:[4,6,12,14,15,17,19,20,22],variabl:14,variou:[2,3,11,12,19,20],vector:11,vendor:[2,6],vendor_ifd_typ:6,vendor_nam:6,verbos:[2,4,6],verif:[0,2,12,19,20],verifi:[0,2,6,12,15,19,20],verify_certif:[12,19,20],verify_cryptographic_checksum:[12,19,20],verify_digital_signatur:[12,19,20],verlag:3,version:[0,1,2,4,5,6,15,19,20],via:[0,1,2,4,5,6,7,11,15,17],vicc:[4,6,7,17],virtual:[0,4,5,17],virtualicc:[7,17],virtualsmartcard:[6,7,9,11,12,13,14,15,16,19,20,22],visual:[4,6],vletoux:0,volum:3,vpcd:[4,5,7,17],vpicc:[7,17],vsmartcard:[0,1,2,3,4,5,6],w64:4,wai:6,wait:[4,6],waldmann:3,walk:14,want:[0,2,3,7],warm:[17,19],warn:7,warn_noinfo63:19,wdk:6,web:3,welcom:[0,1,2,4,5,6],well:6,what:[4,7,12,14,19,20],whatev:22,when:[4,5,6,7,22],where:[2,4,5,6,7,14],wherea:2,whether:[12,15,17,19,20],which:[0,2,4,6,7,11,12,14,17,19,22],wiki:2,win32:6,window:[2,4,5],winscard:[4,6],wireless:1,wissen:3,with_mark:16,with_traceback:13,without:[0,6,11,22],wix:6,wixtoolset:6,wolf:3,word:22,work:[2,4,6,7],workaround:7,workshop:3,write:[14,19],writeand:14,writebinari:[14,19],writebinaryencapsul:[14,19],writebinaryplain:[14,19],writeor:14,writerecord:[14,19],written:[2,4],wudfhost:6,www:[0,2,4,6],x00:11,x01:7,x02:7,x03:7,x04:7,x38:7,x64:6,x82:6,xff:7,xjf:2,xml:[4,6],xor:14,xxx:7,ykneo:0,you:[0,1,2,3,4,5,6,7,14,19,23],your:[0,1,2,4,5,6,7],yourself:[3,7],yubico:0,zero:[15,19,20],zip:6,zone:20,zum:3,zur:3},titles:["Android Smart Card Emulator","Tizen Smart Card Emulator","USB CCID Emulator","Welcome to the Virtual Smart Card Architecture documentation!","PC/SC Relay","Remote Smart Card Reader","Virtual Smart Card","Creating a Virtual Smart Card","virtualsmartcard Package","CardGenerator Module","ConstantDefinitions Module","CryptoUtils Module","SEutils Module","SWutils Module","SmartcardFilesystem Module","SmartcardSAM Module","TLVutils Module","VirtualSmartcard Module","cards Package","cryptoflex Module","ePass Module","nPA Module","utils Module","Istalling |vpcd| on Windows"],titleterms:{"7816":7,Use:[0,1,5],Using:6,android:[0,4,5],architectur:3,build:6,card:[0,1,2,3,4,5,6,7,18],cardgener:9,ccid:2,compliant:2,configur:6,constantdefinit:10,contact:[0,1,5],contactless:4,creat:7,cryptoflex:19,cryptoutil:11,document:3,download:[0,1,2,3,4,5,6],emul:[0,1,2,4,6],epass:[6,20],exampl:7,gadgetf:2,hint:[2,4],implement:7,instal:[0,1,2,4,5,6],interfac:4,iso:7,istal:[6,23],less:[0,1,5],libnfc:4,like:7,linux:[2,4,6],mac:6,middlewar:4,modul:[9,10,11,12,13,14,15,16,17,19,20,21,22],note:[0,1,2,4,5,6],npa:21,other:7,packag:[8,18],phone:[0,5],python:6,question:[0,1,2,4,5,6],reader:[2,5],refer:[0,1,2,3,4,5,6],relai:4,remot:5,run:6,seutil:12,similar:[2,4,6],smart:[0,1,2,3,4,5,6,7],smartcardfilesystem:14,smartcardsam:15,smartwatch:1,swutil:13,test:6,tizen:1,tlvutil:16,type:7,unix:[2,4,6],usag:[2,4],usb:2,util:22,virtual:[3,6,7],virtualsmartcard:[8,17],vpcd:[6,23],vpicc:6,welcom:3,window:[6,23],written:6}}) \ No newline at end of file +Search.setIndex({docnames:["ACardEmulator/README","TCardEmulator/README","ccid/README","index","pcsc-relay/README","remote-reader/README","virtualsmartcard/README","virtualsmartcard/api","virtualsmartcard/api/virtualsmartcard","virtualsmartcard/api/virtualsmartcard.CardGenerator","virtualsmartcard/api/virtualsmartcard.ConstantDefinitions","virtualsmartcard/api/virtualsmartcard.CryptoUtils","virtualsmartcard/api/virtualsmartcard.SEutils","virtualsmartcard/api/virtualsmartcard.SWutils","virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem","virtualsmartcard/api/virtualsmartcard.SmartcardSAM","virtualsmartcard/api/virtualsmartcard.TLVutils","virtualsmartcard/api/virtualsmartcard.VirtualSmartcard","virtualsmartcard/api/virtualsmartcard.cards","virtualsmartcard/api/virtualsmartcard.cards.cryptoflex","virtualsmartcard/api/virtualsmartcard.cards.ePass","virtualsmartcard/api/virtualsmartcard.cards.nPA","virtualsmartcard/api/virtualsmartcard.utils","virtualsmartcard/install"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinxcontrib.bibtex":7,sphinx:56},filenames:["ACardEmulator/README.txt","TCardEmulator/README.txt","ccid/README.txt","index.txt","pcsc-relay/README.txt","remote-reader/README.txt","virtualsmartcard/README.txt","virtualsmartcard/api.txt","virtualsmartcard/api/virtualsmartcard.txt","virtualsmartcard/api/virtualsmartcard.CardGenerator.txt","virtualsmartcard/api/virtualsmartcard.ConstantDefinitions.txt","virtualsmartcard/api/virtualsmartcard.CryptoUtils.txt","virtualsmartcard/api/virtualsmartcard.SEutils.txt","virtualsmartcard/api/virtualsmartcard.SWutils.txt","virtualsmartcard/api/virtualsmartcard.SmartcardFilesystem.txt","virtualsmartcard/api/virtualsmartcard.SmartcardSAM.txt","virtualsmartcard/api/virtualsmartcard.TLVutils.txt","virtualsmartcard/api/virtualsmartcard.VirtualSmartcard.txt","virtualsmartcard/api/virtualsmartcard.cards.txt","virtualsmartcard/api/virtualsmartcard.cards.cryptoflex.txt","virtualsmartcard/api/virtualsmartcard.cards.ePass.txt","virtualsmartcard/api/virtualsmartcard.cards.nPA.txt","virtualsmartcard/api/virtualsmartcard.utils.txt","virtualsmartcard/install.txt"],objects:{"virtualsmartcard.CardGenerator":{CardGenerator:[9,1,1,""]},"virtualsmartcard.CardGenerator.CardGenerator":{__generate_cryptoflex:[9,2,1,""],__generate_ePass:[9,2,1,""],__generate_iso_card:[9,2,1,""],__generate_nPA:[9,2,1,""],generateCard:[9,2,1,""],getCard:[9,2,1,""],readDatagroups:[9,2,1,""],setCard:[9,2,1,""]},"virtualsmartcard.CryptoUtils":{_makesalt:[11,3,1,""],append_padding:[11,3,1,""],calculate_MAC:[11,3,1,""],cipher:[11,3,1,""],crypto_checksum:[11,3,1,""],decrypt:[11,3,1,""],encrypt:[11,3,1,""],get_cipher:[11,3,1,""],get_cipher_blocklen:[11,3,1,""],get_cipher_keylen:[11,3,1,""],hash:[11,3,1,""],operation_on_string:[11,3,1,""],strip_padding:[11,3,1,""]},"virtualsmartcard.SEutils":{ControlReferenceTemplate:[12,1,1,""],Security_Environment:[12,1,1,""]},"virtualsmartcard.SEutils.ControlReferenceTemplate":{__replace_tag:[12,2,1,""],__set_algo:[12,2,1,""],__set_iv:[12,2,1,""],__set_key:[12,2,1,""],parse_SE_config:[12,2,1,""],to_string:[12,2,1,""]},"virtualsmartcard.SEutils.Security_Environment":{_set_SE:[12,2,1,""],compute_cryptographic_checksum:[12,2,1,""],compute_digital_signature:[12,2,1,""],decipher:[12,2,1,""],encipher:[12,2,1,""],generate_public_key_pair:[12,2,1,""],hash:[12,2,1,""],manage_security_environment:[12,2,1,""],parse_SM_CAPDU:[12,2,1,""],perform_security_operation:[12,2,1,""],protect_response:[12,2,1,""],verify_certificate:[12,2,1,""],verify_cryptographic_checksum:[12,2,1,""],verify_digital_signature:[12,2,1,""]},"virtualsmartcard.SWutils":{SwError:[13,4,1,""]},"virtualsmartcard.SWutils.SwError":{args:[13,5,1,""],with_traceback:[13,2,1,""]},"virtualsmartcard.SmartcardFilesystem":{DF:[14,1,1,""],EF:[14,1,1,""],File:[14,1,1,""],MF:[14,1,1,""],Record:[14,1,1,""],RecordStructureEF:[14,1,1,""],TransparentStructureEF:[14,1,1,""],get_indexes:[14,3,1,""],getfile_byrefdataobj:[14,3,1,""],isEqual:[14,3,1,""],make_property:[14,3,1,""],prettyprint_anything:[14,3,1,""],walk:[14,3,1,""],write:[14,3,1,""]},"virtualsmartcard.SmartcardFilesystem.DF":{append:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],content:[14,2,1,""],data:[14,2,1,""],decrypt:[14,2,1,""],dfname:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],remove:[14,2,1,""],select:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.EF":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.File":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.MF":{_selectFile:[14,2,1,""],append:[14,2,1,""],appendRecord:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],content:[14,2,1,""],create:[14,2,1,""],createFile:[14,2,1,""],current:[14,2,1,""],currentDF:[14,2,1,""],currentEF:[14,2,1,""],data:[14,2,1,""],dataObjectHandlingDecodeEncapsulated:[14,2,1,""],dataObjectHandlingDecodePlain:[14,2,1,""],dataUnitsDecodeEncapsulated:[14,2,1,""],dataUnitsDecodePlain:[14,2,1,""],decrypt:[14,2,1,""],deleteFile:[14,2,1,""],dfname:[14,2,1,""],encodeFileControlParameter:[14,2,1,""],encrypt:[14,2,1,""],eraseBinaryEncapsulated:[14,2,1,""],eraseBinaryPlain:[14,2,1,""],eraseRecord:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],firstSFT:[14,2,1,""],getDataEncapsulated:[14,2,1,""],getDataPlain:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],makeFirstSoftwareFunctionTable:[14,2,1,""],makeSecondSoftwareFunctionTable:[14,2,1,""],named_dfs:[14,2,1,""],parent:[14,2,1,""],putDataEncapsulated:[14,2,1,""],putDataPlain:[14,2,1,""],putdata:[14,2,1,""],readBinaryEncapsulated:[14,2,1,""],readBinaryPlain:[14,2,1,""],readRecordEncapsulated:[14,2,1,""],readRecordPlain:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],recordHandlingDecode:[14,2,1,""],remove:[14,2,1,""],searchBinaryEncapsulated:[14,2,1,""],searchBinaryPlain:[14,2,1,""],secondSFT:[14,2,1,""],select:[14,2,1,""],selectFile:[14,2,1,""],simpletlv_data:[14,2,1,""],updateBinaryEncapsulated:[14,2,1,""],updateBinaryPlain:[14,2,1,""],updateRecordEncapsulated:[14,2,1,""],updateRecordPlain:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writeBinaryEncapsulated:[14,2,1,""],writeBinaryPlain:[14,2,1,""],writeRecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.Record":{data:[14,2,1,""],identifier:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.RecordStructureEF":{__getRecords:[14,2,1,""],__getRecordsByIdentifier:[14,2,1,""],__getRecordsByNumber:[14,2,1,""],appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],eraserecord:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],hasFixedRecordSize:[14,2,1,""],hasSimpleTlv:[14,2,1,""],isCyclic:[14,2,1,""],lifecycle:[14,2,1,""],maxrecordsize:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],recordpointer:[14,2,1,""],records:[14,2,1,""],resetRecordPointer:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardFilesystem.TransparentStructureEF":{appendrecord:[14,2,1,""],bertlv_data:[14,2,1,""],data:[14,2,1,""],datacoding:[14,2,1,""],decrypt:[14,2,1,""],encrypt:[14,2,1,""],erasebinary:[14,2,1,""],fid:[14,2,1,""],filedescriptor:[14,2,1,""],getMF:[14,2,1,""],getdata:[14,2,1,""],getpath:[14,2,1,""],lifecycle:[14,2,1,""],parent:[14,2,1,""],putdata:[14,2,1,""],readbinary:[14,2,1,""],readrecord:[14,2,1,""],select:[14,2,1,""],shortfid:[14,2,1,""],simpletlv_data:[14,2,1,""],updatebinary:[14,2,1,""],updaterecord:[14,2,1,""],writebinary:[14,2,1,""],writerecord:[14,2,1,""]},"virtualsmartcard.SmartcardSAM":{SAM:[15,1,1,""],get_referenced_cipher:[15,3,1,""]},"virtualsmartcard.SmartcardSAM.SAM":{FSdecrypt:[15,2,1,""],FSencrypt:[15,2,1,""],_get_referenced_key:[15,2,1,""],change_reference_data:[15,2,1,""],erase_SE:[15,2,1,""],external_authenticate:[15,2,1,""],generate_public_key_pair:[15,2,1,""],get_card_number:[15,2,1,""],get_challenge:[15,2,1,""],internal_authenticate:[15,2,1,""],manage_security_environment:[15,2,1,""],mutual_authenticate:[15,2,1,""],parse_SM_CAPDU:[15,2,1,""],perform_security_operation:[15,2,1,""],protect_result:[15,2,1,""],restore_SE:[15,2,1,""],set_MF:[15,2,1,""],set_asym_algorithm:[15,2,1,""],store_SE:[15,2,1,""],verify:[15,2,1,""]},"virtualsmartcard.TLVutils":{bertlv_pack:[16,3,1,""],bertlv_unpack:[16,3,1,""],decodeDiscretionaryDataObjects:[16,3,1,""],decodeExtendedHeaderList:[16,3,1,""],decodeHeaderList:[16,3,1,""],decodeOffsetDataObjects:[16,3,1,""],decodeTagList:[16,3,1,""],encodeDataOffsetObjects:[16,3,1,""],encodeDiscretionaryDataObjects:[16,3,1,""],encodebertlvDatalist:[16,3,1,""],pack:[16,3,1,""],simpletlv_pack:[16,3,1,""],simpletlv_unpack:[16,3,1,""],tlv_find_tag:[16,3,1,""],tlv_find_tags:[16,3,1,""],tlv_unpack:[16,3,1,""],unpack:[16,3,1,""]},"virtualsmartcard.VirtualSmartcard":{Iso7816OS:[17,1,1,""],SmartcardOS:[17,1,1,""],VirtualICC:[17,1,1,""],loadMitMFromPath:[17,3,1,""]},"virtualsmartcard.VirtualSmartcard.Iso7816OS":{SAM:[17,2,1,""],execute:[17,2,1,""],formatResult:[17,2,1,""],getATR:[17,2,1,""],getResponse:[17,2,1,""],makeATR:[17,2,1,""],makeThirdSoftwareFunctionTable:[17,2,1,""],mf:[17,2,1,""],powerDown:[17,2,1,""],powerUp:[17,2,1,""],reset:[17,2,1,""],seekable:[17,2,1,""]},"virtualsmartcard.VirtualSmartcard.SmartcardOS":{execute:[17,2,1,""],getATR:[17,2,1,""],powerDown:[17,2,1,""],powerUp:[17,2,1,""],reset:[17,2,1,""]},"virtualsmartcard.VirtualSmartcard.VirtualICC":{__recvFromVPICC:[17,2,1,""],__sendToVPICC:[17,2,1,""],connectToPort:[17,2,1,""],openPort:[17,2,1,""],run:[17,2,1,""],stop:[17,2,1,""]},"virtualsmartcard.cards":{cryptoflex:[19,0,0,"-"],ePass:[20,0,0,"-"]},"virtualsmartcard.cards.cryptoflex":{CryptoflexMF:[19,1,1,""],CryptoflexOS:[19,1,1,""],CryptoflexSAM:[19,1,1,""],CryptoflexSE:[19,1,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexMF":{_selectFile:[19,2,1,""],append:[19,2,1,""],appendRecord:[19,2,1,""],appendrecord:[19,2,1,""],bertlv_data:[19,2,1,""],content:[19,2,1,""],create:[19,2,1,""],createFile:[19,2,1,""],current:[19,2,1,""],currentDF:[19,2,1,""],currentEF:[19,2,1,""],data:[19,2,1,""],dataObjectHandlingDecodeEncapsulated:[19,2,1,""],dataObjectHandlingDecodePlain:[19,2,1,""],dataUnitsDecodeEncapsulated:[19,2,1,""],dataUnitsDecodePlain:[19,2,1,""],decrypt:[19,2,1,""],deleteFile:[19,2,1,""],dfname:[19,2,1,""],encodeFileControlParameter:[19,2,1,""],encrypt:[19,2,1,""],eraseBinaryEncapsulated:[19,2,1,""],eraseBinaryPlain:[19,2,1,""],eraseRecord:[19,2,1,""],erasebinary:[19,2,1,""],fid:[19,2,1,""],filedescriptor:[19,2,1,""],firstSFT:[19,2,1,""],getDataEncapsulated:[19,2,1,""],getDataPlain:[19,2,1,""],getMF:[19,2,1,""],getdata:[19,2,1,""],getpath:[19,2,1,""],lifecycle:[19,2,1,""],makeFirstSoftwareFunctionTable:[19,2,1,""],makeSecondSoftwareFunctionTable:[19,2,1,""],named_dfs:[19,2,1,""],parent:[19,2,1,""],putDataEncapsulated:[19,2,1,""],putDataPlain:[19,2,1,""],putdata:[19,2,1,""],readBinaryEncapsulated:[19,2,1,""],readBinaryPlain:[19,2,1,""],readRecordEncapsulated:[19,2,1,""],readRecordPlain:[19,2,1,""],readbinary:[19,2,1,""],readrecord:[19,2,1,""],recordHandlingDecode:[19,2,1,""],remove:[19,2,1,""],searchBinaryEncapsulated:[19,2,1,""],searchBinaryPlain:[19,2,1,""],secondSFT:[19,2,1,""],select:[19,2,1,""],selectFile:[19,2,1,""],simpletlv_data:[19,2,1,""],updateBinaryEncapsulated:[19,2,1,""],updateBinaryPlain:[19,2,1,""],updateRecordEncapsulated:[19,2,1,""],updateRecordPlain:[19,2,1,""],updatebinary:[19,2,1,""],updaterecord:[19,2,1,""],writeBinaryEncapsulated:[19,2,1,""],writeBinaryPlain:[19,2,1,""],writeRecord:[19,2,1,""],writebinary:[19,2,1,""],writerecord:[19,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexOS":{SAM:[19,2,1,""],execute:[19,2,1,""],formatResult:[19,2,1,""],getATR:[19,2,1,""],getResponse:[19,2,1,""],makeATR:[19,2,1,""],makeThirdSoftwareFunctionTable:[19,2,1,""],mf:[19,2,1,""],powerDown:[19,2,1,""],powerUp:[19,2,1,""],reset:[19,2,1,""],seekable:[19,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSAM":{FSdecrypt:[19,2,1,""],FSencrypt:[19,2,1,""],_get_referenced_key:[19,2,1,""],change_reference_data:[19,2,1,""],erase_SE:[19,2,1,""],external_authenticate:[19,2,1,""],generate_public_key_pair:[19,2,1,""],get_card_number:[19,2,1,""],get_challenge:[19,2,1,""],internal_authenticate:[19,2,1,""],manage_security_environment:[19,2,1,""],mutual_authenticate:[19,2,1,""],parse_SM_CAPDU:[19,2,1,""],perform_security_operation:[19,2,1,""],pezorform_security_operation:[19,2,1,""],protect_result:[19,2,1,""],restore_SE:[19,2,1,""],set_MF:[19,2,1,""],set_asym_algorithm:[19,2,1,""],store_SE:[19,2,1,""],verify:[19,2,1,""]},"virtualsmartcard.cards.cryptoflex.CryptoflexSE":{_set_SE:[19,2,1,""],compute_cryptographic_checksum:[19,2,1,""],compute_digital_signature:[19,2,1,""],decipher:[19,2,1,""],encipher:[19,2,1,""],generate_public_key_pair:[19,2,1,""],hash:[19,2,1,""],manage_security_environment:[19,2,1,""],parse_SM_CAPDU:[19,2,1,""],perform_security_operation:[19,2,1,""],protect_response:[19,2,1,""],verify_certificate:[19,2,1,""],verify_cryptographic_checksum:[19,2,1,""],verify_digital_signature:[19,2,1,""]},"virtualsmartcard.cards.ePass":{PassportSAM:[20,1,1,""],ePass_SE:[20,1,1,""]},"virtualsmartcard.cards.ePass.PassportSAM":{FSdecrypt:[20,2,1,""],FSencrypt:[20,2,1,""],__computeKeys:[20,2,1,""],_get_referenced_key:[20,2,1,""],change_reference_data:[20,2,1,""],derive_key:[20,2,1,""],erase_SE:[20,2,1,""],external_authenticate:[20,2,1,""],generate_public_key_pair:[20,2,1,""],get_card_number:[20,2,1,""],get_challenge:[20,2,1,""],internal_authenticate:[20,2,1,""],manage_security_environment:[20,2,1,""],mutual_authenticate:[20,2,1,""],parse_SM_CAPDU:[20,2,1,""],perform_security_operation:[20,2,1,""],protect_result:[20,2,1,""],restore_SE:[20,2,1,""],set_MF:[20,2,1,""],set_asym_algorithm:[20,2,1,""],store_SE:[20,2,1,""],verify:[20,2,1,""]},"virtualsmartcard.cards.ePass.ePass_SE":{_set_SE:[20,2,1,""],compute_cryptographic_checksum:[20,2,1,""],compute_digital_signature:[20,2,1,""],decipher:[20,2,1,""],encipher:[20,2,1,""],generate_public_key_pair:[20,2,1,""],hash:[20,2,1,""],manage_security_environment:[20,2,1,""],parse_SM_CAPDU:[20,2,1,""],perform_security_operation:[20,2,1,""],protect_response:[20,2,1,""],verify_certificate:[20,2,1,""],verify_cryptographic_checksum:[20,2,1,""],verify_digital_signature:[20,2,1,""]},"virtualsmartcard.utils":{APDU:[22,1,1,""],C_APDU:[22,1,1,""],R_APDU:[22,1,1,""],_make_byte_property:[22,3,1,""],hexdump:[22,3,1,""],inttostring:[22,3,1,""],stringtoint:[22,3,1,""]},"virtualsmartcard.utils.APDU":{_deldata:[22,2,1,""],_format_parts:[22,2,1,""],_getdata:[22,2,1,""],_setbyte:[22,2,1,""],_setdata:[22,2,1,""],data:[22,2,1,""]},"virtualsmartcard.utils.C_APDU":{"case":[22,2,1,""],CLA:[22,2,1,""],INS:[22,2,1,""],Lc:[22,2,1,""],Le:[22,2,1,""],P1:[22,2,1,""],P2:[22,2,1,""],_deldata:[22,2,1,""],_format_fields:[22,2,1,""],_format_parts:[22,2,1,""],_getdata:[22,2,1,""],_setbyte:[22,2,1,""],_setdata:[22,2,1,""],cla:[22,2,1,""],data:[22,2,1,""],effective_Le:[22,2,1,""],ins:[22,2,1,""],lc:[22,2,1,""],le:[22,2,1,""],p1:[22,2,1,""],p2:[22,2,1,""],parse:[22,2,1,""],render:[22,2,1,""]},"virtualsmartcard.utils.R_APDU":{SW1:[22,2,1,""],SW2:[22,2,1,""],SW:[22,2,1,""],_deldata:[22,2,1,""],_format_fields:[22,2,1,""],_format_parts:[22,2,1,""],_getdata:[22,2,1,""],_getsw:[22,2,1,""],_setbyte:[22,2,1,""],_setdata:[22,2,1,""],_setsw:[22,2,1,""],data:[22,2,1,""],parse:[22,2,1,""],render:[22,2,1,""],sw1:[22,2,1,""],sw2:[22,2,1,""],sw:[22,2,1,""]},virtualsmartcard:{CardGenerator:[9,0,0,"-"],ConstantDefinitions:[10,0,0,"-"],CryptoUtils:[11,0,0,"-"],SEutils:[12,0,0,"-"],SWutils:[13,0,0,"-"],SmartcardFilesystem:[14,0,0,"-"],SmartcardSAM:[15,0,0,"-"],TLVutils:[16,0,0,"-"],VirtualSmartcard:[17,0,0,"-"],utils:[22,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","exception","Python exception"],"5":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:exception","5":"py:attribute"},terms:{"0000":[12,20,22],"03119":2,"05_":3,"07_":3,"0x00":[7,12,20],"0x00000000":6,"0x00000001":6,"0x01":[2,7],"0x02":[2,7],"0x03":2,"0x04":[2,7],"0x0c":[14,19],"0x0d46":2,"0x0e":[14,19],"0x0f":[14,19],"0x10":2,"0x18d1":6,"0x3010":2,"0x40":19,"0x4ee1":6,"0x60":19,"0x80":[12,19,20],"0x8c7b":[6,7],"0x8e":[12,19,20],"0x9000":2,"0x9a":[2,12,19,20],"0x9e":[12,19,20],"0xa4":[7,14,19],"0xac":[12,19,20],"0xb0":[14,19],"0xb1":[14,19],"0xb2":[14,19],"0xb3":[14,19],"0xbc":[12,19,20],"0xca":[14,19],"0xcb":[14,19],"0xd0":[14,19],"0xd1":[14,19],"0xd2":[14,19],"0xd6":[14,19],"0xd7":[14,19],"0xda":[14,19],"0xdb":[14,19],"0xdc":[14,19],"0xdd":[14,19],"0xe0":[14,19],"0xe2":[14,19],"0xe4":[14,19],"0xff":[2,7,17,19],"0xxx":7,"1007":3,"1024":19,"107":3,"134010":6,"14443":4,"179":3,"188":3,"2010":3,"2011":3,"2012":3,"2019":6,"256":19,"27c3":3,"27th":3,"3083254":7,"3083586":7,"33392":3,"35963":[4,6],"35964":6,"3b80800101":4,"3uto6908061f9406236ze184226b":6,"4297":3,"512":19,"642":3,"65535":14,"7816":[0,6,12,17,19,20],"78166":7,"7_3":3,"978":3,"byte":[7,12,14,15,17,19,20,22],"case":[2,4,6,7,19,22],"class":[6,7,9,12,14,15,17,19,20,22],"default":[2,4,6],"enum":4,"f\u00fcr":3,"function":[3,7,11,14,15,17,19,20,22],"import":[1,6,7,23],"int":[2,4],"long":[4,7,14,19],"m\u00fcller":3,"new":[2,3,6,7,9,12,14,19,20],"null":6,"pl\u00f6tz":6,"public":[3,6,12,15,19,20],"return":[0,7,11,12,13,14,15,16,17,19,20,22],"short":[14,22],"static":[2,14,17,19,20],"switch":[2,6,12,19,20],"throw":7,"true":[14,19,22],"try":[3,7],"universit\u00e4t":3,"while":7,Bus:2,But:[6,7],DFs:[14,19],DGs:6,For:[5,6,14,19],INS:[2,22],Its:7,Near:1,One:[12,20],QES:6,SWs:7,The:[0,1,2,3,4,5,6,7,11,12,14,15,17,19,20,22],Then:6,There:[7,12],Use:[2,4,6],Used:19,Using:[1,4],Will:7,With:[0,4],__computekei:20,__generate_cryptoflex:9,__generate_epass:9,__generate_iso_card:9,__generate_npa:9,__getrecord:14,__getrecordsbyidentifi:14,__getrecordsbynumb:14,__init__:7,__recvfromvpicc:17,__replace_tag:12,__repr__:22,__sendtovpicc:17,__set_algo:12,__set_iv:12,__set_kei:12,__str__:22,__traceback__:13,_deldata:22,_format_field:22,_format_part:22,_get_referenced_kei:[15,19,20],_getdata:22,_getsw:22,_make_byte_properti:22,_makesalt:11,_selectfil:[14,19],_set_s:[12,19,20],_setbyt:22,_setdata:22,_setsw:22,a0000002471001:6,a000000397425446590201:0,a000000527210101:0,abl:[1,6,9],about:[6,7],abov:6,academictitl:6,acardemul:[0,4],access:[0,2,4,5,6,12,15,17,19,20],accessori:1,accord:[7,12,14,17,19,20],accordingli:6,act:[6,7],activ:4,actual:[4,5,7],add:[2,4,6,7,12,23],add_data:7,added:[15,19,20],addit:[4,6],addition:[2,4,6],address:6,adjust:[12,20],adress:22,af_inet:7,against:[4,5,6],agreement:[12,19,20],aid:4,aid_list:4,algo:11,algorithm:[11,12,15,19,20],all:[4,5,6,7,12,14,15,16,19,20,23],allow:[0,1,4,5,6],alreadi:12,also:[0,1,2,4,6,7,9,14,19],altern:[2,3,4,6],although:6,analyz:4,anchor:[6,12,19,20],andrea:3,android:[1,3,6,7],angriff:3,ani:[0,1,2,4,5,6,7,15,19,20],anna:6,annex:20,anoth:2,answer:[17,19],anywai:20,apart:3,apdu:[0,1,2,4,6,7,12,14,15,17,19,20,22],api:[6,7],app:[0,1,4,5,6,7],appear:[2,6],append:[11,12,14,19],append_pad:11,appendrecord:[14,19],appl:6,applet:0,applic:[0,1,2,4,5,6,17],applicationidentifi:[14,19],appropri:[1,12,19,20],apt:[2,6],architectur:6,arg:[7,13,14,17,19,22],argument:6,argz:[14,19],around:4,arrai:6,articl:6,asctim:7,aspect:3,assign:[14,22],assignlogicalchannel:[17,19],associ:[12,20],assum:7,asym:12,atexit:7,atr:[4,7,17,19],attach:[0,1,5],attack:[4,5,7],attempt:6,attribut:[14,19,22],auf:3,authent:[12,15,19,20],authenticate_head:[12,19,20],authentisierung:3,author:[6,23],autodetect:[2,4],automat:[2,6,17,19],autoreconf:[2,4,6],autotool:6,auxiliari:[2,4,6],avail:[0,2,3,4,5,6,7,14,19],avoid:7,bac:6,back:[1,4,7,17],backend:4,bar:5,base:[0,2,4,9,12,13,14,15,17,19,20,22],basic:20,basicconfig:7,basiert:3,been:7,befor:7,begin:[14,19],being:6,below:[4,6],ber:[14,19],berlin:3,bertlv:16,bertlv_data:[14,19],bertlv_pack:16,bertlv_unpack:16,besitz:3,best:[4,7],better:7,between:[0,2,6,17,19],big:[7,12,19,20],bin:6,binari:[6,14,19,22],birthnam:6,bit:[11,14,19],bitmask:[12,19,20],bitstr:[17,19],vivoKey:6,vivoKeyread:[6,23],VivoKeySmartReaderinstal:[6,23],bleed:[2,4,6],block:[7,11,15,19,20],blocklen:11,bndl:6,bool:[14,17,19],bootstrap:6,both:2,box:2,bring:6,brows:[0,3,5],bsi:2,buffer:7,bug:[2,4,6,7],build:[0,1,2,4,5],building_gadget_usb_modul:2,built:[0,2,4,5,6],bund:2,bundl:6,bz2:2,c_apdu:22,ca_kei:[6,7,17],calcul:[4,11,17,19,20],calculate_mac:11,call:[7,14],camera:[0,5],can:[0,2,3,4,5,6,7,14,19],capabl:[14,17,19],capdu:[12,15,17,19,20],card:[8,9,12,14,15,17,19,20],card_typ:[7,9,17],cardaccess:6,cardconnectionexcept:7,cardgener:[7,8],cardnumb:15,cardsecret:15,cardsecur:6,cardtyp:7,cbc:11,ccc:3,ccid:3,cct:12,cer:[6,23],cert:6,certif:[1,6,12,19,20,23],certifc:6,certmgr:[6,23],cfbundledevelopmentregion:6,cfbundleexecut:6,cfbundleinfodictionaryvers:6,cfbundlenam:6,cfbundlepackagetyp:6,cfbundlesignatur:6,cfbundlevers:6,challeng:[15,19,20],chang:[2,4,6,15,19,20],change_reference_data:[15,19,20],channelid:6,chao:3,charact:[17,19],check:[2,4,6,7,15,19,20],checksum:[11,12,19,20],chip:6,chipkartenles:3,choic:5,choos:[0,1,4,5,6],chosen:6,chr:7,chv:[15,19,20],cipher:[11,15,19,20],cipherspec:11,citi:6,cla:[2,22],cleanup:7,click:[6,23],client:2,clone:[0,1,2,3,4,5,6],close:7,club:3,code:[0,2,5,6,7,12,14,16,19,20,22],codeproject:6,com:[0,1,2,3,4,5,6,7],combin:[2,4,12],come:7,command:[0,1,2,4,6,7,12,14,15,17,19,20,22],commandchaing:[17,19],commandlin:[6,23],commun:[0,1,3,4,5,6,7,17],communityid:6,compar:19,compat:2,compil:[0,1,2,4,5,6],complet:[4,6,7],complex:7,comput:[0,3,5,6,11,12,19,20,23],compute_cryptographic_checksum:[12,19,20],compute_digital_signatur:[12,19,20],concern:[3,4,5],conf:[6,7],config:[2,4,5,6,12],configur:[0,2,4,5,7,12],congress:3,connect:[0,1,3,4,5,6,7,17],connector:[4,6],connecttoport:[7,17],consecut:22,constantdefinit:8,contact:[4,6],contactless:0,contain:[6,12,14,15,19,20],content:[7,9,12,14,19,22],context:7,contribut:[0,1,2,4,5,6],control:[12,14,19,20],controlreferencetempl:12,convent:[17,19],copyright:6,core:2,correct:[6,7,14,15,19,20],correctli:[15,19],correspond:[7,15],could:[6,23],counter:[11,15,19,20],counterpart:2,countri:6,cover:[4,6],craft:2,creat:[2,3,6,14,19],createfil:[14,19],critic:7,cross:4,crt:[12,20],crypt:11,crypto_checksum:11,cryptoflex:[6,7,8,9,18],cryptoflexmf:[7,19],cryptoflexo:[7,19],cryptoflexs:19,cryptoflexsam:19,cryptograph:[11,12,19,20],cryptotokenkit:6,cryptoutil:[8,15],curl:6,current:[0,3,4,6,9,11,12,14,15,19,20,23],currentdf:[14,19],currentef:[14,19],custom:2,custom_url:7,cvca:[6,7,17],cyanogenmod:[0,5],cyberflex:[6,11],cycl:[14,19],cyclic:14,d2760001240102000000000000010000:0,daemon:6,data:[0,2,4,5,6,7,11,12,14,15,16,17,19,20,22],datacod:14,datagroup:9,datagroupnam:6,datagroupvalu:6,datalist:[14,16],dataobjecthandlingdecodeencapsul:[14,19],dataobjecthandlingdecodeplain:[14,19],dataset:[6,7],datasetfil:[6,7,9,17],dataunitsdecodeencapsul:[14,19],dataunitsdecodeplain:[14,19],datefmt:7,dateofbirth:6,dateofexpiri:6,dcb:[14,19],debian:[2,4,6],debug:[4,6],deciph:[12,19,20],decipher:[12,19,20],decive_unit:6,decod:[14,19],decodediscretionarydataobject:16,decodeextendedheaderlist:16,decodeheaderlist:16,decodeoffsetdataobject:16,decodetaglist:16,decor:14,decrement:[15,19,20],decrypt:[11,14,15,19,20],dedic:14,def:7,default_s:15,default_uid:2,defin:[2,15,20],deleg:[0,1,6],deletefil:[14,19],den:3,depend:[0,2,4,5,6,11,14,19,20,22],deploi:[0,1,5],deriv:[7,20],derive_kei:20,des3:11,des:3,describ:6,descriptor:[14,19],design:7,despit:4,destroypacechannel:2,detail:[6,7],detect:5,dev:[2,6],develop:[0,1,4,5],devic:[0,1,2,6,23],devicenam:6,devices_compatibility_matrix:4,devmgmt:6,dfname:[14,19],dfselectionbyapplication_implicit:[14,19],dfselectionbyfid:[14,19],dfselectionbyfulldfnam:[14,19],dfselectionbypartialdfnam:[14,19],dfselectionbypath:[14,19],dg12:6,dg14:6,dg15:6,dg16:6,dg21:6,dialog:1,dict:6,dictionari:12,die:3,die_gesamte_technik_ist_sich:3,differ:[3,6,7,9,11,12,20],digit:[12,19,20],direct:[17,19],directconvent:[17,19],directli:[4,6],directori:[2,6,7],disabl:6,disable_check:[7,17],disconnect:7,discuss:[4,5],disk:[7,9],dispatch:[15,17],distanc:4,distribut:4,dlitz:6,do_encrypt:11,doc:[6,14],docstr:14,doctyp:6,document:7,documenttyp:6,doe:[4,6,7,20],doi:3,dominik:[3,4],done:[4,7],doubl:[6,23],down:[7,17,19],driver:[2,5,6],droid:[0,5],dsa:[15,19,20],dst:12,dtd:6,dummy_hcd:2,dylib:6,eac:6,each:14,earlier:6,echo:[2,6],edg:[2,4,6],edit:7,editor:3,ef_cardaccess:[6,7,17],ef_cardsecur:[6,7,17],effective_l:22,efstructure_cyclic_nofurtherinfo:7,efstructure_linear_fixed_:7,efstructure_linear_variable_:7,efstructure_transpar:7,eid:3,einem:3,either:[0,12,14,19,20],electron:[0,6],element:6,elementari:14,elif:7,els:7,email:6,emul:[3,7,17],enabl:[2,3,4,6],enciph:[12,19,20],encipher:[12,19,20],encod:[6,7,12],encodebertlvdatalist:16,encodedataoffsetobject:16,encodediscretionarydataobject:16,encodefilecontrolparamet:[14,19],encrypt:[7,9,11,14,15,19,20],end:[12,14,19,20],endian:7,engin:3,english:6,ensur:6,enter:[6,15,19,20],entir:7,entri:2,environ:[4,6,12,15,19,20],epass:[7,8,18],epass_s:20,epassport:20,equal:[14,15,19,20],eras:[12,14,15,19,20],erase_s:[15,19,20],erasebinari:[14,19],erasebinaryencapsul:[14,19],erasebinaryplain:[14,19],erasefrom:14,eraserecord:[14,19],eraseto:14,erik:0,eriknellessen:0,err_incorrectparamet:7,err_wronglength:7,error:[2,7,14,19],erweiterung:3,esign:6,esign_ca_cert:[6,7,17],esign_cert:[6,7,17],esign_kei:[7,17],especi:[4,5],establish:[5,6],establishpacechannel:2,establishpacechannelinput:2,establishpacechanneloutput:2,etc:[6,7],even:[7,14,19],everi:6,exampl:[2,4,6,22],except:[7,13],exe:[6,23],execut:[6,7,17,19],exist:[0,4,7],exit:[2,4,6,7],expect:7,explain:4,explor:6,expon:19,extend:[3,6,7],extended_length:17,extendedl:[17,19],extens:1,extern:[6,12,19,20],external_authent:[15,19,20],extra_fci_data:14,f276a288bcfba69d34f31001:0,fabio:6,fail:7,fals:[6,7,14,16,17,19,22],familynam:6,far:6,fci:[14,19],fdb:7,fdid:[0,5],featur:3,feature_execute_pac:2,feature_modify_pin_direct:2,feature_verify_pin_direct:2,feedback:[0,1,2,4,5,6],feel:[6,23],fetch:[0,1,5,7],fid:[7,14,19],field:[1,12,19,20,22],file:[0,2,4,5,6,7,9,14,15,17,19],filedescriptor:[7,14,19],filenam:2,filesystem:[9,15,19,20],fill:9,find:[2,4,6,7,16],firewal:7,first:[6,7,14,19],firstsft:[14,19],firstsoftwar:[14,19],fix:14,fmd:[14,19],focu:6,follow:[0,2,3,4,5,6,7,14,19,23],foreground:4,form:[4,9,11,15,19,20],format:7,formatresult:[7,17,19],forwar:4,forward:[2,7,17],forwared:2,foss:3,fragment:2,framework:6,frank:[2,3,4],frankmorgn:[0,1,2,3,4,5,6],fraunhof:3,free:[6,23],freerunn:2,friendlynam:6,from:[0,1,2,3,4,5,6,7,9,12,14,15,17,19,20,23],fsdecrypt:[15,19,20],fsencrypt:[15,19,20],fukuchi:6,full:[4,5,22],futur:[15,19,20],g_ether:2,gadget:2,gear:1,gener:[0,2,4,5,6,7,9,11,12,14,15,19,20,22],generate_public_key_pair:[12,15,19,20],generatecard:9,german:[0,2,4,5,6],gertrud:6,gesamt:3,get:[2,4,6,7,9,14,19],get_card_numb:[15,19,20],get_challeng:[15,19,20],get_ciph:11,get_cipher_blocklen:11,get_cipher_keylen:11,get_index:14,get_referenced_ciph:15,getatr:[7,17,19],getcard:[7,9],getdata:[14,19],getdataencapsul:[14,19],getdataplain:[14,19],getfile_byrefdataobj:14,getmf:[14,19],getpath:[14,19],getreaderpacecap:2,getrespons:[17,19],getsocknam:7,gg487509:2,gid:0,gidsapplet:0,giovanni:3,git:[0,1,2,3,4,5,6],github:[0,1,2,3,4,5,6],give:[6,7],given:[4,7,12,14,15,16,17,19,20],givennam:6,global:[12,15,19,20],gmail:2,gnu:[2,4,6],gpl:[0,1,2,4,5,6],group:[6,7],guess:6,gui:6,guid:[1,3,6],guidelin:1,guidelines_on_connecting_gears2_device_using_wifi_151222:1,handi:3,handl:[3,7,14,19],handleinpdu:7,handleoutpdu:7,handler_test:[6,7],handlertest:7,handlertesto:7,hardwar:[0,2,4,5,6],has:[0,2,4,5,7,14,19],hasfixedrecords:14,hash:[11,12,19,20],hashmap:15,hashmethod:11,hassimpletlv:14,have:[0,1,2,3,4,5,6,7],hce:[0,1],header:[2,4,12,19,20],header_authent:[15,19,20],headless:1,heidelberg:3,help:[2,4,6],henryk:6,here:[2,3,4,6,7],hexdump:22,histchar:[17,19],histor:[14,17,19],hmac:11,holder:6,honor:14,hook:7,host:[0,2,4,5,6,7,17],hostnam:[4,6,7],how:[2,4,7],html:[0,1,2,3,5,6],http:[0,1,2,3,4,5,6,7],humboldt:3,icao:[9,11,20],icc:20,ident:[0,6],identifi:[0,4,14,15,19,20],identifier_first:14,identifier_last:14,identifier_next:14,identifier_previ:14,iec:4,ifd:6,ifdcap:6,ifdfriendlynam:6,ifdmanufacturerstr:6,ifdproductid:6,ifdproductstr:6,ifdprotocolsupport:6,ifdread:6,ifdvendorid:6,ifdversionnumb:6,imag:6,impact:[4,5],implement:[0,2,6,12,19,20],implicitli:7,importerror:7,inact:6,includ:[0,1,3,4,6,7,12,15,19,20],include_fil:16,incom:[4,6],incomplet:6,indent:[14,22],index:[4,14,15,19],index_curr:[14,19],index_htm:2,indic:[12,19,20],info:[2,6,7],infoplist:6,inform:[3,12,14,15,19,20],informat:3,informatik:3,informationstechnologi:3,ini:6,init:[0,2,4,6],initi:[0,1,2,6,7,11,12,14,20],inpterpret:7,input:11,ins2handl:[17,19],ins:[7,17,19,22],insert:4,insight:7,insmod:2,inspect:6,instal:23,instanc:[14,16],instead:[0,6,22],institut:3,instruct:[14,19],integ:[14,19],integr:6,interact:[6,9],interfac:[0,2,5,6,17,19],intermediari:2,intern:[12,15,19,20],internal_authent:[15,19,20],internet:6,interrupt:2,inttostr:[7,22],invalid:[6,7,15,19,20],invers:[17,19],invok:[12,19,20],involv:14,ioanni:3,iscycl:14,isequ:14,isinst:7,iso7816:[6,7],iso7816o:[7,17,19],iso:[0,4,6,12,17,19,20,22],isoapplet:0,issimpletlv:[14,19],issu:[2,4,6],issuingst:6,ist:3,item:14,its:[2,4,6,7,12,14,19,20],itself:7,java:0,jcardsim:0,jen:3,join:7,jump:6,kdir:2,kei:[6,7,11,12,15,19,20],kernel:2,keycard:0,keytyp:[15,19,20],killal:6,kind:[0,1,2,4,5,6,12,19,20],kitkat:[0,5],know:[6,7],knowledg:7,krontiri:3,kwarg:22,l898902c:6,last:[11,14,19],lastcommandoffcut:7,lastcommandsw:7,later:[2,4,6,7,19],latest:[2,3,4,6],layer:6,lead:6,learn:6,least:6,lectur:3,len:[7,17,19],len_extend:22,length:[7,11,12,14,16,19,22],less:[4,6],let:7,level:7,levelnam:7,lian:3,lib:[2,4,6],libccid:2,libeac:6,libexec:6,libifdvpcd:6,libopensc:2,libpath:6,libpcsclit:6,libqrencod:6,librari:[3,6],libtool:[2,4,6],licens:[0,1,2,4,5,6],life:[14,19],lifecycl:[14,19],like:[2,4,6],line:[2,6,22],linelen:22,link:[2,6],linuxtag:3,list:[2,4,6,7,14,16,19],listen:4,listread:7,lite:[4,6],littl:7,load:[2,6,7],loadmitmfrompath:[7,17],local:[2,6,23],local_ip:7,localhost:6,localmachin:[6,23],locat:[3,4],log:[6,7],logginglevel:[7,17],logic:14,look:[0,2,3,4,6,7,14],loop:17,lost:7,mac:[11,12,19,20],machin:[2,6,20],maco:6,magic:7,mai:[0,1,4,6,11,12,15,19,20],mail:6,main:[4,6,7,17],maintain:17,make:[2,4,6,22],make_properti:14,makeatr:[17,19],makefil:2,makefirstsoftwarefunctiont:[14,19],makesecondsoftwarefunctiont:[14,19],makethirdsoftwarefunctiont:[17,19],man:6,manag:[6,7],manage_security_environ:[12,15,19,20],mani:16,manipul:[12,19,20],manual:[0,1,5],map:[7,19],marix:6,mass:6,master:[3,14,15,17,19],match:[4,6,14],max:[11,17,19],maximum:[14,15,19,20],maximumchannel:[17,19],maxl:[7,19],maxrecords:[7,14],maxsiz:14,mayb:2,mean:[6,7,11,12,15,17,19,20],mechan:[12,19,20],media:3,memori:[15,19,20],messag:[6,7,11,12,15,17,19,20],meta:22,method:[9,12,15,19,20],microsoft:[2,4,6],middl:6,middlewar:2,might:[7,15,19,20],min:7,mingw:4,miss:[2,4,6],mitm:[6,7],mitmpath:[7,17],mkdir:2,mmc:6,mmo11:3,mo10:3,mobil:[2,3],mobilen:3,mode:[2,4,5,6,7,11,12,15],modern:[2,4],modif:[2,7],modifi:[2,4,7,12],modprob:2,modul:[2,4,6,8,18],momr12:3,mor12:3,more:[0,1,2,4,5,6,7,12,20],morgner:[2,3,4],most:[2,4,7,16],mostli:7,mount:2,mous:6,mrtd:[6,20],mrz:[6,9],msc:6,msdn:2,mse:12,msg:[7,17,19],msi:[6,23],multipl:[2,6,7],must:[2,4,5,6,7,9,11,12,14,19,20],mutual_authent:[15,19,20],mutual_challeng:[15,19,20],name:[4,6,14,19,22],named_df:[14,19],nation:6,nativ:[1,4],necessari:4,need:[0,1,2,4,5,6,7,15,19,20],neither:[14,19],nellesson:0,neo:2,net:[0,6],network:[5,7],neuen:3,new_fil:7,newer:[0,5],newli:14,newlist:14,newtlvlist:[14,19],newvalu:[14,16],next:[1,14,19],nfc:[0,1,3,4,5,6,7],nice:22,nobodi:20,nofurtherinfo:7,none:[7,9,11,14,15,16,17,19,20,22],nor:[14,19],normal:[7,19],normal_rest:7,note:[3,7,14,17,19,20],noth:[12,19,20],notif:2,now:[2,4,6,15,19,20],npa:[0,3,6,7,8,18],npao:7,num_id:14,num_result:16,number:[2,4,6,7,14,15,19,20],numread:6,oath:0,obj:2,object:[7,9,12,14,15,17,19,20,22],occur:[14,19],odd:[14,19],oep10:3,oepen:[3,4],off:[2,7],offer:3,offset:[14,16,19,22],old:[3,14],older:[2,3,4,6],om11:3,omit:[17,19],onc:[6,23],one:[4,5,12,14,19,20,22],onetimewrit:14,onli:[2,4,7,11,14,19,20],open:[0,5,6,7,17],openmoko:[2,4,6],openpac:6,openpcd:4,openpgp:0,openpicc:4,openport:[7,17],opensc:[2,6],openssl:2,oper:[4,11,12,14,19,20],operation_on_str:11,option:[2,4,6,9,11,17,19],ord:7,order:[2,7,12,14,15,19,20],org:[0,1,2,4,5,6],other:[2,5,6,12,15,19,20],otherwis:[4,12,14,19],ottavi:6,our:[0,1,2,3,4,5,6,7,22],out:[2,7],output:6,over:[4,5,6,7],overview:[6,7],overwrit:[7,22],own:[0,1,6],pace:[0,2,6],pacecap:2,pack:16,pad:[11,12,19,20],padding_class:11,pair:[12,20],parallel:6,param:14,paramet:[11,12,14,15,17,19,20],parent:[7,14,19],pariti:20,pars:[7,12,15,19,20,22],parse_se_config:12,parse_sm_capdu:[12,15,19,20],part:[3,6,14],partial:[14,19],pass:[7,17],passport:[0,6,9,11,20],passportsam:20,patch:2,path:[6,7,9,14,15,17,19],pbkdf2:6,pc_to_rdr_secur:2,pc_to_rdr_xfrblock:2,pcd:[6,7,17],pcsc:[0,4,6],pcsc_scan:6,pcscd:[6,7],pcsclite:[4,6],pdf:[1,3],perform:[2,4,6,12,17,19,20],perform_bac:6,perform_security_oper:[12,15,19,20],period:6,permiss:[0,5],persist:9,personalauswei:3,peter:3,pezorform_security_oper:19,phone:[6,7],photo:9,php:4,physic:7,piec:14,pil:6,pin:[0,2,15,19,20],pip:6,pipe:[2,6],pkc:6,pkg:[2,4,6],pkg_config_path:4,pkgconfig:4,pki:20,place:6,placeofbirth:6,plain:[12,15,19,20],platform:[0,1,2,4,5,6],pleas:[0,1,2,4,5,6],plist:6,plug:6,point:14,pointer:14,port:[4,6,7,17],portabl:2,posess:[15,19,20],possibl:[0,2,4,6],power:[7,17,19],powerdown:[7,17,19],powerup:[7,17,19],predic:6,prefix:4,prepend:[11,14,19],present:2,pretend:6,pretti:7,prettyprint_anyth:14,previou:[14,19],previous:[7,12,20],print:[2,4,5,6,7],print_ascii:7,privaci:3,privat:[6,12,15,19,20],probabl:[2,4,6],problem:6,process:[0,1,4],produc:17,product:[2,6],program:[1,3,6,7],programmingguide_accessori:1,project:[0,1,2,3,4,5,6],prompt:9,prop:[14,22],properti:[14,17,19,22],propertylist:6,proprietari:[2,6,14],protect:[0,6,12,15,19,20],protect_respons:[12,19,20],protect_result:[15,19,20],protocol:[0,1,6,7,17,19,20],prove:[15,19,20],provid:[6,7,12,20],pseudo:2,pseudorandom:11,publikationen:2,publish:[6,23],puk:[15,19,20],purpos:4,put:[14,19],putdata:[14,19],putdataencapsul:[14,19],putdataplain:[14,19],pwd:2,pwendland:0,pycryptodom:6,pycryptodomex:6,pypa:6,pypi:6,pyreadlin:6,pyscard:[6,7],python2:6,pythonwar:6,qrcode:7,qrencod:6,qrserver:7,quickli:6,quit:7,r_apdu:[7,22],rais:[7,14,19],random:[2,15,19,20],randomli:6,rapdu:[7,17],raw:[12,19,20],rdr_to_pc_datablock:2,read:[6,7,9,14,19,20],readabl:20,readbinari:[14,19],readbinaryencapsul:[14,19],readbinaryplain:[14,19],readdatagroup:[7,9],reader0:6,reader1:6,reader2:6,reader:[0,1,3,4,6,7],readernum:[7,17],readlin:6,readpass:6,readrecord:[14,19],readrecordencapsul:[14,19],readrecordplain:[14,19],real:[2,4,6,7],realiz:4,recalculate_length:16,receiv:[4,7,17],recent:2,recogn:7,reconnect:7,record:[7,14,19],recordhandlingdecod:[7,14,19],recordidentifiersupport:[14,19],recordnumbersupport:[14,19],recordpoint:14,recordstructureef:[7,14,19],recurs:[0,2,4,6,14],redlich:3,ref:14,refdataobj:14,refer:[12,14,15,19,20],referenc:[15,19,20],regard:[14,19],regist:[1,4,6,7],rel:6,relai:[0,3,5,6,7],relaymiddleman:7,relayo:7,releas:[2,3,4,6],religiousartisticnam:6,remot:[0,3,4,6],remotesmartcardread:[0,5],remov:[6,12,14,19,20,23],render:[7,22],replac:[6,12,14,15,19,20],report:[2,4,6],repositori:[0,2,3,4,5,6],repres:22,represent:14,request:[3,6,7,14],requestedtl:[14,19],requir:[0,2,5,6,7,20],requiremet:6,res:4,research:3,reset:[7,14,15,17,19,20],resetrecordpoint:14,residencepermit1:6,residencepermit2:6,resp_data:20,respect:7,respons:[0,1,2,4,6,7,9,12,14,15,17,19,20,22],respsons:17,ressourc:1,rest:7,restart:6,restor:[12,15,19,20],restore_s:[15,19,20],result:[7,12,14,16,17,19,20],retri:[15,19,20],retriev:[15,19,20],revers:[6,7],rfid:4,rfu:[15,19,20],right:[15,19,20],root:[6,23],routin:6,rpc_type:6,rsa:[15,19,20],run:[0,2,4,5,7,17],runtim:0,russello:3,sai:6,said:7,salt:11,sam:[7,9,12,14,15,17,19,20],same:[6,7],samsung:1,saniti:4,sar:3,save:6,scan:[0,5,7],scanner:5,scardcontrol:2,scardtransmit:2,schmidt:3,scienc:3,script:6,sdk:[0,1,5,6],search:[14,19],searchbinaryencapsul:[14,19],searchbinaryplain:[14,19],second:[14,19],secondsft:[14,19],secondsoftwar:[14,19],secret:[11,15,19,20],section:4,secur:[2,3,6,7,12,15,17,19,20],security_environ:[12,15,19,20],see:[2,4,6,7,14,17,19],seed:20,seekabl:[7,17,19],seid:[12,15,19,20],select:[0,1,4,5,7,11,14,17,19],select_appl:6,selectfil:[14,19],self:[7,13],send:[1,4,7,11,12,17,19,20],sendcommandapdu:7,sent:[4,7],seper:6,sequenc:[11,20],sequenti:14,serial:[2,6],server_sock:7,servic:[1,6],session:7,session_kei:11,set:[4,6,9,12,13,14,17,19,20],set_asym_algorithm:[15,19,20],set_mf:[15,19,20],setcard:9,setter:[15,19,20],settimeout:7,seutil:[8,15,19,20],sever:[2,4,6],sex:6,shall:[6,12,19,20],shell:6,shiguo:3,ship:[2,4,6],shortfid:14,shortfidsupport:[14,19],should:[4,6,7,12,14,19,20],show:6,sicher:3,sicherheitsanalys:3,sigkil:6,sign:[6,12,19,20,23],signatur:[6,12,19,20],similar:7,simpl:[0,6,7,14,19],simpletlv:16,simpletlv_data:[14,19],simpletlv_pack:16,simpletlv_unpack:16,simpli:[6,7],simul:[0,1],sinc:2,sit:3,six:12,size:[11,14,19],sln:6,slot:6,sm_header:[12,19,20],small:6,smart:17,smartcard:[3,5,6,7,14,17],smartcardfilesystem:[8,19],smartcardo:[7,17,19],smartcardsam:[8,19,20],smartcardservic:6,smartphon:[0,3,5],smartwatch:0,snapshot:2,social:3,sock:7,sock_dgram:7,socket:[0,6,7,17],softwar:[2,4,5,6,7,14,17,19],solut:6,some:[2,3,7],someth:6,sourc:[0,1,2,5,7],sourceforg:[2,4,6,7],space:22,special:[2,5],specif:[7,15,19,20],specifi:[4,6,7,11,12,14,15,16,19,20],specifii:6,springer:3,spsmartcardsdatatyp:6,spusbdatatyp:6,src:[2,4],ssc:[11,20],stabl:6,stack:2,stai:4,standalon:6,standard:[2,4,6,7,20],start:[2,4,6,14],startup:6,state:14,statu:[2,14,19,22],step:6,still:[2,3,4,6],stop:[6,7,17],storag:[6,9],store:[6,12,15,19,20,23],store_s:[15,19,20],str:7,straight:7,street:6,string1:11,string2:11,string:[2,4,6,7,11,12,14,15,16,17,19,22],stringtoint:[7,22],strip:11,strip_pad:11,structur:[14,16],studio:[0,4,5,6],stuttgart:3,subdir:2,submodul:[0,1,2,4,6],subset:2,subsystem:6,success:[15,19,20],successful:7,successfulli:6,sudo:[2,6],suggest:[0,1,2,4,5,6],suitabl:11,sun:4,support:[2,4,6,9,11,12,19],suppos:6,sure:[6,7],sw1:[2,7,22],sw2:[2,7,22],swerror:[7,13],swutil:8,sym:12,syntax:6,sys:7,sysconfdir:6,system:[2,3,4,5,6,7,15],system_profil:6,systemroot:6,szenario:3,t15:[17,19],tabl:[12,14,17,19,20],tag:[6,12,14,16,19,20],tagungsband:3,tai:[17,19],taj:[17,19],take:[14,15,19,20],taken:6,tar:2,target:6,tbi:[17,19],tbj:[17,19],tcardemul:1,tci:[17,19],tcj:[17,19],tck:[17,19],tcp:[6,14,19],tcp_port:6,tdi:[17,19],tech:1,techdoc:1,technik:3,technischerichtlinien:2,telecommun:3,templat:[7,12,14,19,20],term:6,termin:[0,4,12,15,19,20],test:[0,1,2,4,5,23],tester:6,text:19,than:[0,1,2,4,5,6],thehistor:[14,19],thei:[6,11,12],them:[0,17],themselv:3,therefor:9,thesi:3,thi:[2,4,5,6,7,9,11,12,14,15,17,19,20,22,23],thing:[7,14],third:[17,19],those:7,through:[0,2,6],time:[2,4,6,7],tip:1,titl:4,tizen:[0,3],tlv:[12,14,16,19,20],tlv_data:16,tlv_find_tag:16,tlv_unpack:16,tlvutil:8,tmp:4,to_str:12,togeth:[0,4],tool:[1,2,4,6],toolset:6,tr03119:2,tracker:[0,1,2,4,5,6],tradit:[5,6],transmiss:[17,19],transmit:[0,2,4,7],transpar:14,transparentstructureef:[7,14,19],tri:6,trust:[2,6,12,19,20,23],trustedpublish:[6,23],tupl:[14,16,19],two:[14,19],txt:6,type:[3,6,9,11,12,15,19,20],ubuntu:[2,4,6],udc:2,ulrich:3,umbrella:3,umdf:6,umfeld:3,unam:2,und:3,under:[15,19,20],understood:15,unfamiliar:[2,4,6],unit:[14,19],univers:2,unix:5,unknown:[7,14,19],unpack:16,unplug:6,unprotect:[12,15,19,20],unprotected_result:[15,19,20],until:[15,19,20],updat:[0,2,4,6,14,19],updatebinari:[14,19],updatebinaryencapsul:[14,19],updatebinaryplain:[14,19],updaterecord:[14,19],updaterecordencapsul:[14,19],updaterecordplain:[14,19],url:[3,6],usabl:[2,3],usag:6,usb:[3,6],use:[0,1,2,4,5,6,7,11,12,14,15,17,19,20],used:[0,2,4,5,6,7,9,11,12,14,15,19,20,22],useful:1,user:[2,6,9,15,19,20,23],uses:[0,1,2,4,6,20],using:[0,1,2,3,4,5,6,7,12,14,15,19,20],usr:[2,6],usual:[2,6,7,14],utf:6,util:[6,8],utoeriksson:6,valid:[6,7,15,19,20],valu:[4,6,12,14,15,17,19,20,22],variabl:14,variou:[2,3,11,12,19,20],vector:11,vendor:[2,6],vendor_ifd_typ:6,vendor_nam:6,verbos:[2,4,6],verif:[0,2,12,19,20],verifi:[0,2,6,12,15,19,20],verify_certif:[12,19,20],verify_cryptographic_checksum:[12,19,20],verify_digital_signatur:[12,19,20],verlag:3,version:[0,1,2,4,5,6,15,19,20],via:[0,1,2,4,5,6,7,11,15,17],vicc:[4,6,7,17],virtual:[0,4,5,17],virtualicc:[7,17],virtualsmartcard:[6,7,9,11,12,13,14,15,16,19,20,22],visual:[4,6],vletoux:0,volum:3,vpcd:[4,5,7,17],vpicc:[7,17],vsmartcard:[0,1,2,3,4,5,6],w64:4,wai:6,wait:[4,6],waldmann:3,walk:14,want:[0,2,3,7],warm:[17,19],warn:7,warn_noinfo63:19,wdk:6,web:3,welcom:[0,1,2,4,5,6],well:6,what:[4,7,12,14,19,20],whatev:22,when:[4,5,6,7,22],where:[2,4,5,6,7,14],wherea:2,whether:[12,15,17,19,20],which:[0,2,4,6,7,11,12,14,17,19,22],wiki:2,win32:6,window:[2,4,5],winscard:[4,6],wireless:1,wissen:3,with_mark:16,with_traceback:13,without:[0,6,11,22],wix:6,wixtoolset:6,wolf:3,word:22,work:[2,4,6,7],workaround:7,workshop:3,write:[14,19],writeand:14,writebinari:[14,19],writebinaryencapsul:[14,19],writebinaryplain:[14,19],writeor:14,writerecord:[14,19],written:[2,4],wudfhost:6,www:[0,2,4,6],x00:11,x01:7,x02:7,x03:7,x04:7,x38:7,x64:6,x82:6,xff:7,xjf:2,xml:[4,6],xor:14,xxx:7,ykneo:0,you:[0,1,2,3,4,5,6,7,14,19,23],your:[0,1,2,4,5,6,7],yourself:[3,7],yubico:0,zero:[15,19,20],zip:6,zone:20,zum:3,zur:3},titles:["Android Smart Card Emulator","Tizen Smart Card Emulator","USB CCID Emulator","Welcome to the Virtual Smart Card Architecture documentation!","PC/SC Relay","Remote Smart Card Reader","Virtual Smart Card","Creating a Virtual Smart Card","virtualsmartcard Package","CardGenerator Module","ConstantDefinitions Module","CryptoUtils Module","SEutils Module","SWutils Module","SmartcardFilesystem Module","SmartcardSAM Module","TLVutils Module","VirtualSmartcard Module","cards Package","cryptoflex Module","ePass Module","nPA Module","utils Module","Istalling |vpcd| on Windows"],titleterms:{"7816":7,Use:[0,1,5],Using:6,android:[0,4,5],architectur:3,build:6,card:[0,1,2,3,4,5,6,7,18],cardgener:9,ccid:2,compliant:2,configur:6,constantdefinit:10,contact:[0,1,5],contactless:4,creat:7,cryptoflex:19,cryptoutil:11,document:3,download:[0,1,2,3,4,5,6],emul:[0,1,2,4,6],epass:[6,20],exampl:7,gadgetf:2,hint:[2,4],implement:7,instal:[0,1,2,4,5,6],interfac:4,iso:7,istal:[6,23],less:[0,1,5],libnfc:4,like:7,linux:[2,4,6],mac:6,middlewar:4,modul:[9,10,11,12,13,14,15,16,17,19,20,21,22],note:[0,1,2,4,5,6],npa:21,other:7,packag:[8,18],phone:[0,5],python:6,question:[0,1,2,4,5,6],reader:[2,5],refer:[0,1,2,3,4,5,6],relai:4,remot:5,run:6,seutil:12,similar:[2,4,6],smart:[0,1,2,3,4,5,6,7],smartcardfilesystem:14,smartcardsam:15,smartwatch:1,swutil:13,test:6,tizen:1,tlvutil:16,type:7,unix:[2,4,6],usag:[2,4],usb:2,util:22,virtual:[3,6,7],virtualsmartcard:[8,17],vpcd:[6,23],vpicc:6,welcom:3,window:[6,23],written:6}}) \ No newline at end of file diff --git a/docs/virtualsmartcard/README.html b/docs/virtualsmartcard/README.html index d992954..b1c4842 100644 --- a/docs/virtualsmartcard/README.html +++ b/docs/virtualsmartcard/README.html @@ -292,12 +292,12 @@ git submodule update --init --recursive
  • In Visual Studio open vpcd’s solution -virtualsmartcard\win32\BixVReader.sln and ensure with the +virtualsmartcard\win32\VivoKeySmartReader.sln and ensure with the configuration manager, that the project is built for your platform (i.e. x64 or x82).

  • If you can successfully Build the solution, you can find -the installer (BixVReaderInstaller.msi) in -virtualsmartcard\win32\BixVReaderInstaller\bin\*Release

  • +the installer (VivoKeySmartReaderInstaller.msi) in +virtualsmartcard\win32\VivoKeySmartReaderInstaller\bin\*Release

    For debugging vpcd and building the driver with an older version of Visual Studio or WDK please see Fabio Ottavi’s UMDF Driver for a Virtual Smart Card @@ -309,18 +309,18 @@ Reader 11

    Istalling vpcd on Windows

    1. To import the installer’s test signing certificate, double click -BixVReader.cer and add it to the Trusted Root Certification +VivoKeySmartReader.cer and add it to the Trusted Root Certification Authority and the Trusted Publishers at the Local Computer” (not the *Current User).

      On the commandline, you could do this as follows:

      -
      CertMgr.exe /add BixVReader.cer /s /r localMachine root /all
      -CertMgr.exe /add BixVReader.cer /s /r localMachine trustedpublisher
      +
      CertMgr.exe /add VivoKeySmartReader.cer /s /r localMachine root /all
      +CertMgr.exe /add VivoKeySmartReader.cer /s /r localMachine trustedpublisher
       

      Feel free to remove the certificate from the certificate stores once the device is installed.

    2. -
    3. To install vpcd, double click BixVReaderInstaller.msi.

    4. +
    5. To install vpcd, double click VivoKeySmartReaderInstaller.msi.

    @@ -442,11 +442,11 @@ stopped when you unplug the device.

    Configuring vpcd on Windows

    -

    The configuration file BixVReader.ini of vpcd is installed to +

    The configuration file VivoKeySmartReader.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 VivoKey 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:

    [Driver]
    diff --git a/virtualsmartcard/win32/BixVReader.sln b/virtualsmartcard/win32/VivoKeySmartReader.sln
    similarity index 89%
    rename from virtualsmartcard/win32/BixVReader.sln
    rename to virtualsmartcard/win32/VivoKeySmartReader.sln
    index 10c72c0..96d1290 100644
    --- a/virtualsmartcard/win32/BixVReader.sln
    +++ b/virtualsmartcard/win32/VivoKeySmartReader.sln
    @@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
     # Visual Studio 14
     VisualStudioVersion = 14.0.25420.1
     MinimumVisualStudioVersion = 10.0.40219.1
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BixVReader", "BixVReader\BixVReader.vcxproj", "{1D286E48-DE79-41FF-844B-56ED3764D4DA}"
    +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VivoKeySmartReader", "VivoKeySmartReader\VivoKeySmartReader.vcxproj", "{1D286E48-DE79-41FF-844B-56ED3764D4DA}"
     EndProject
    -Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "BixVReaderInstaller", "BixVReaderInstaller\BixVReaderInstaller.wixproj", "{9C30A09E-1A74-4091-93B7-6296F94CE77C}"
    +Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "VivoKeySmartReaderInstaller", "VivoKeySmartReaderInstaller\VivoKeySmartReaderInstaller.wixproj", "{9C30A09E-1A74-4091-93B7-6296F94CE77C}"
     	ProjectSection(ProjectDependencies) = postProject
     		{1D286E48-DE79-41FF-844B-56ED3764D4DA} = {1D286E48-DE79-41FF-844B-56ED3764D4DA}
     		{42C4F882-2757-4C0D-90D9-BC096810163E} = {42C4F882-2757-4C0D-90D9-BC096810163E}
    diff --git a/virtualsmartcard/win32/BixVReader/DllMain.cpp b/virtualsmartcard/win32/VivoKeySmartReader/DllMain.cpp
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/DllMain.cpp
    rename to virtualsmartcard/win32/VivoKeySmartReader/DllMain.cpp
    diff --git a/virtualsmartcard/win32/BixVReader/PipeReader.cpp b/virtualsmartcard/win32/VivoKeySmartReader/PipeReader.cpp
    similarity index 84%
    rename from virtualsmartcard/win32/BixVReader/PipeReader.cpp
    rename to virtualsmartcard/win32/VivoKeySmartReader/PipeReader.cpp
    index e87a82b..d9c8a60 100644
    --- a/virtualsmartcard/win32/BixVReader/PipeReader.cpp
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/PipeReader.cpp
    @@ -42,9 +42,9 @@ PipeReader::PipeReader() {
     void PipeReader::init(wchar_t *section) {
     	wchar_t temp[300];
     	swprintf(temp,L"SCardSimulatorDriver%i",instance);
    -	GetPrivateProfileStringW(section,L"PIPE_NAME",temp,pipeName,300,L"BixVReader.ini");
    +	GetPrivateProfileStringW(section,L"PIPE_NAME",temp,pipeName,300,L"VivoKeySmartReader.ini");
     	swprintf(temp,L"SCardSimulatorDriverEvents%i",instance);
    -	GetPrivateProfileStringW(section,L"PIPE_EVENT_NAME",temp,pipeEventName,300,L"BixVReader.ini");
    +	GetPrivateProfileStringW(section,L"PIPE_EVENT_NAME",temp,pipeEventName,300,L"VivoKeySmartReader.ini");
     
     }
     
    @@ -146,27 +146,27 @@ DWORD PipeReader::startServer() {
     	swprintf(temp,L"\\\\.\\pipe\\%s",pipeEventName);
     	HANDLE _eventpipe=CreateNamedPipe(temp,PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,PIPE_TYPE_BYTE,PIPE_UNLIMITED_INSTANCES,0,0,0,&sa);
     	wchar_t log[300];
    -	swprintf(log,L"[BixVReader]Pipe created:%s:%p",pipeName,_pipe);
    +	swprintf(log,L"[VivoKeySmartReader]Pipe created:%s:%p",pipeName,_pipe);
     	OutputDebugString(log);
     
     	while (true) {
     		//__try {
     			BOOL ris=ConnectNamedPipe(_pipe,NULL);
     			if (ris==0) {
    -				swprintf(log,L"[BixVReader]Pipe NOT connected:%x",GetLastError());
    +				swprintf(log,L"[VivoKeySmartReader]Pipe NOT connected:%x",GetLastError());
     				OutputDebugString(log);
     			}
     			else {
    -				swprintf(log,L"[BixVReader]Pipe connected");
    +				swprintf(log,L"[VivoKeySmartReader]Pipe connected");
     				OutputDebugString(log);
     				}
     			ris=ConnectNamedPipe(_eventpipe,NULL);
     			if (ris==0) {
    -				swprintf(log,L"[BixVReader]Event Pipe NOT connected:%x",GetLastError());
    +				swprintf(log,L"[VivoKeySmartReader]Event Pipe NOT connected:%x",GetLastError());
     				OutputDebugString(log);
     			}
     			else {
    -				swprintf(log,L"[BixVReader]Event Pipe connected");
    +				swprintf(log,L"[VivoKeySmartReader]Event Pipe connected");
     				OutputDebugString(log);
     			}
     			pipe=_pipe;
    @@ -192,7 +192,7 @@ DWORD PipeReader::startServer() {
     				DWORD read=0;
     				if (!ReadFile(eventpipe,&command,sizeof(DWORD),&read,NULL)) {
     					state=SCARD_ABSENT;
    -					OutputDebugString(L"[BixVReader]Pipe error");
    +					OutputDebugString(L"[VivoKeySmartReader]Pipe error");
     					powered=0;
     					pipe=NULL;
     					eventpipe=NULL;
    @@ -201,11 +201,11 @@ DWORD PipeReader::startServer() {
     						SectionLocker lock(device->m_RequestLock);
     						while (!waitRemoveIpr.empty()) {
     							CComPtr ipr = waitRemoveIpr.back();
    -							OutputDebugString(L"[BixVReader]complete Wait Remove");
    +							OutputDebugString(L"[VivoKeySmartReader]complete Wait Remove");
     							if (ipr->UnmarkCancelable()==S_OK) {
    -								OutputDebugString(L"[BixVReader]Wait Remove Unmarked");
    +								OutputDebugString(L"[VivoKeySmartReader]Wait Remove Unmarked");
     								ipr->CompleteWithInformation(STATUS_SUCCESS, 0);
    -								OutputDebugString(L"[BixVReader]Wait Remove Completed");
    +								OutputDebugString(L"[VivoKeySmartReader]Wait Remove Completed");
     							}
     							waitRemoveIpr.pop_back();
     						}
    @@ -215,11 +215,11 @@ DWORD PipeReader::startServer() {
     						SectionLocker lock(device->m_RequestLock);
     						while (!waitInsertIpr.empty()) {
     							CComPtr ipr = waitInsertIpr.back();
    -							OutputDebugString(L"[BixVReader]cancel Wait Remove");
    +							OutputDebugString(L"[VivoKeySmartReader]cancel Wait Remove");
     							if (ipr->UnmarkCancelable()==S_OK) {
    -								OutputDebugString(L"[BixVReader]Wait Insert Unmarked");
    +								OutputDebugString(L"[VivoKeySmartReader]Wait Insert Unmarked");
     								ipr->CompleteWithInformation(HRESULT_FROM_WIN32(ERROR_CANCELLED), 0);
    -								OutputDebugString(L"[BixVReader]Wait Insert Cancelled");
    +								OutputDebugString(L"[VivoKeySmartReader]Wait Insert Cancelled");
     							}
     							waitInsertIpr.pop_back();
     						}
    @@ -228,7 +228,7 @@ DWORD PipeReader::startServer() {
     					DisconnectNamedPipe(_eventpipe);
     					break;
     				}
    -				OutputDebugString(L"[BixVReader]Pipe data");
    +				OutputDebugString(L"[VivoKeySmartReader]Pipe data");
     				if (command==0)
     					powered=0;
     				if (command==0 && !waitRemoveIpr.empty()) {
    @@ -263,7 +263,7 @@ DWORD PipeReader::startServer() {
     		//	OutputDebugString(log);
     		//}
     	}
    -	OutputDebugString(L"[BixVReader]Pipe quit!!!");
    +	OutputDebugString(L"[VivoKeySmartReader]Pipe quit!!!");
     	return 0;
     }
     
    diff --git a/virtualsmartcard/win32/BixVReader/Queue.cpp b/virtualsmartcard/win32/VivoKeySmartReader/Queue.cpp
    similarity index 93%
    rename from virtualsmartcard/win32/BixVReader/Queue.cpp
    rename to virtualsmartcard/win32/VivoKeySmartReader/Queue.cpp
    index a423e90..a1791b9 100644
    --- a/virtualsmartcard/win32/BixVReader/Queue.cpp
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/Queue.cpp
    @@ -85,10 +85,10 @@ HRESULT CMyQueue::CreateInstance(__in IWDFDevice*  pWdfDevice, CMyDevice* pMyDev
                                                 );
                 if (FAILED(hr))
                 {
    -				OutputDebugString (L"[BixVReader]IoQueue NOT Created\n");
    +				OutputDebugString (L"[VivoKeySmartReader]IoQueue NOT Created\n");
                 }
     			else
    -				OutputDebugString (L"[BixVReader]IoQueue Created\n");
    +				OutputDebugString (L"[VivoKeySmartReader]IoQueue Created\n");
     
             }
     
    diff --git a/virtualsmartcard/win32/BixVReader/Queue.h b/virtualsmartcard/win32/VivoKeySmartReader/Queue.h
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/Queue.h
    rename to virtualsmartcard/win32/VivoKeySmartReader/Queue.h
    diff --git a/virtualsmartcard/win32/BixVReader/Reader.cpp b/virtualsmartcard/win32/VivoKeySmartReader/Reader.cpp
    similarity index 81%
    rename from virtualsmartcard/win32/BixVReader/Reader.cpp
    rename to virtualsmartcard/win32/VivoKeySmartReader/Reader.cpp
    index 0052002..8ffb64f 100644
    --- a/virtualsmartcard/win32/BixVReader/Reader.cpp
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/Reader.cpp
    @@ -16,7 +16,7 @@ void Reader::IoSmartCardIsPresent(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZE_
     	UNREFERENCED_PARAMETER(inBufSize);
     	UNREFERENCED_PARAMETER(outBufSize);
     
    -	OutputDebugString(L"[BixVReader][IPRE]IOCTL_SMARTCARD_IS_PRESENT");
    +	OutputDebugString(L"[VivoKeySmartReader][IPRE]IOCTL_SMARTCARD_IS_PRESENT");
     	if (CheckATR()) {
     		// there's a smart card present, so complete the request
     		SectionLocker lock(device->m_RequestLock);
    @@ -36,16 +36,16 @@ void Reader::IoSmartCardIsPresent(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZE_
     void Reader::IoSmartCardGetState(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZE_T outBufSize) {
     	UNREFERENCED_PARAMETER(inBufSize);
     	UNREFERENCED_PARAMETER(outBufSize);
    -	OutputDebugString(L"[BixVReader][GSTA]IOCTL_SMARTCARD_GET_STATE");
    +	OutputDebugString(L"[VivoKeySmartReader][GSTA]IOCTL_SMARTCARD_GET_STATE");
     	wchar_t log[300];
    -	swprintf(log,L"[BixVReader]STATE:%08X",state);
    +	swprintf(log,L"[VivoKeySmartReader]STATE:%08X",state);
     	OutputDebugString(log);
     	setInt(device,pRequest,state);
     }
     void Reader::IoSmartCardIsAbsent(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZE_T outBufSize) {
     	UNREFERENCED_PARAMETER(inBufSize);
     	UNREFERENCED_PARAMETER(outBufSize);
    -	OutputDebugString(L"[BixVReader][IABS]IOCTL_SMARTCARD_IS_ABSENT");
    +	OutputDebugString(L"[VivoKeySmartReader][IABS]IOCTL_SMARTCARD_IS_ABSENT");
     	if (!CheckATR()) {
     		// there's no smart card present, so complete the request
     		SectionLocker lock(device->m_RequestLock);
    @@ -66,22 +66,22 @@ void Reader::IoSmartCardIsAbsent(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZE_T
     void Reader::IoSmartCardPower(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZE_T outBufSize) {
     	UNREFERENCED_PARAMETER(inBufSize);
     	UNREFERENCED_PARAMETER(outBufSize);
    -	OutputDebugString(L"[BixVReader][POWR]IOCTL_SMARTCARD_POWER");
    +	OutputDebugString(L"[VivoKeySmartReader][POWR]IOCTL_SMARTCARD_POWER");
     	DWORD code=getInt(pRequest);
     	if (code==SCARD_COLD_RESET) {
    -		OutputDebugString(L"[BixVReader][POWR]SCARD_COLD_RESET");
    +		OutputDebugString(L"[VivoKeySmartReader][POWR]SCARD_COLD_RESET");
     		protocol=0;
     		powered=1;
     		state=SCARD_NEGOTIABLE;
     	}
     	else if (code==SCARD_WARM_RESET) {
    -		OutputDebugString(L"[BixVReader][POWR]SCARD_WARM_RESET");
    +		OutputDebugString(L"[VivoKeySmartReader][POWR]SCARD_WARM_RESET");
     		protocol=0;
     		powered=1;
     		state=SCARD_NEGOTIABLE;
     	}
     	else if (code==SCARD_POWER_DOWN) {
    -		OutputDebugString(L"[BixVReader][POWR]SCARD_POWER_DOWN");
    +		OutputDebugString(L"[VivoKeySmartReader][POWR]SCARD_POWER_DOWN");
     		protocol=0;
     		powered=0;
     		state=SCARD_SWALLOWED;
    @@ -110,7 +110,7 @@ void Reader::IoSmartCardSetProtocol(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZ
     
     	DWORD requestedProtocol=getInt(pRequest);
     	wchar_t log[300];
    -	swprintf(log,L"[BixVReader][SPRT]IOCTL_SMARTCARD_SET_PROTOCOL:%08X",requestedProtocol);
    +	swprintf(log,L"[VivoKeySmartReader][SPRT]IOCTL_SMARTCARD_SET_PROTOCOL:%08X",requestedProtocol);
     	OutputDebugString(log);
     
     	BYTE ATR[100];
    @@ -128,7 +128,7 @@ void Reader::IoSmartCardSetProtocol(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZ
     		protocol = SCARD_PROTOCOL_T1;
     		SectionLocker lock(device->m_RequestLock);
     		pRequest->CompleteWithInformation(STATUS_SUCCESS, 0);
    -		OutputDebugString(L"[BixVReader]PROTOCOL SET: T1");
    +		OutputDebugString(L"[VivoKeySmartReader]PROTOCOL SET: T1");
     		return;
     	}
     
    @@ -137,7 +137,7 @@ void Reader::IoSmartCardSetProtocol(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZ
     		protocol = SCARD_PROTOCOL_T0;
     		SectionLocker lock(device->m_RequestLock);
     		pRequest->CompleteWithInformation(STATUS_SUCCESS, 0);
    -		OutputDebugString(L"[BixVReader]PROTOCOL SET: T0");
    +		OutputDebugString(L"[VivoKeySmartReader]PROTOCOL SET: T0");
     		return;
     	}
     
    @@ -146,7 +146,7 @@ void Reader::IoSmartCardSetProtocol(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZ
     		protocol = SCARD_PROTOCOL_T1;
     		SectionLocker lock(device->m_RequestLock);
     		pRequest->CompleteWithInformation(STATUS_SUCCESS, 0);
    -		OutputDebugString(L"[BixVReader]PROTOCOL SET: T1");
    +		OutputDebugString(L"[VivoKeySmartReader]PROTOCOL SET: T1");
     		return;
     	}
     
    @@ -155,7 +155,7 @@ void Reader::IoSmartCardSetProtocol(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZ
     		protocol = SCARD_PROTOCOL_T0;
     		SectionLocker lock(device->m_RequestLock);
     		pRequest->CompleteWithInformation(STATUS_SUCCESS, 0);
    -		OutputDebugString(L"[BixVReader]PROTOCOL SET: T0");
    +		OutputDebugString(L"[VivoKeySmartReader]PROTOCOL SET: T0");
     		return;
     	}
     	{
    @@ -169,7 +169,7 @@ void Reader::IoSmartCardSetProtocol(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZ
     	UNREFERENCED_PARAMETER(inBufSize);
     	UNREFERENCED_PARAMETER(outBufSize);
     	UNREFERENCED_PARAMETER(instance);
    -	OutputDebugString(L"[BixVReader][SATT]IOCTL_SMARTCARD_SET_ATTRIBUTE");
    +	OutputDebugString(L"[VivoKeySmartReader][SATT]IOCTL_SMARTCARD_SET_ATTRIBUTE");
     
     	IWDFMemory *inmem=NULL;
     	pRequest->GetInputMemory(&inmem);
    @@ -181,7 +181,7 @@ void Reader::IoSmartCardSetProtocol(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZ
     	bool handled=false;
     	if (minCode==SCARD_ATTR_DEVICE_IN_USE) {
     		SectionLocker lock(device->m_RequestLock);
    -		OutputDebugString(L"[BixVReader][SATT]SCARD_ATTR_DEVICE_IN_USE");
    +		OutputDebugString(L"[VivoKeySmartReader][SATT]SCARD_ATTR_DEVICE_IN_USE");
     		pRequest->CompleteWithInformation(STATUS_SUCCESS, 0);
     		handled=true;
     	}
    @@ -189,7 +189,7 @@ void Reader::IoSmartCardSetProtocol(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZ
     	if (!handled) {
     		SectionLocker lock(device->m_RequestLock);
     		wchar_t log[300];
    -		swprintf(log,L"[BixVReader][SATT]ERROR_NOT_SUPPORTED:%08X",minCode);
    +		swprintf(log,L"[VivoKeySmartReader][SATT]ERROR_NOT_SUPPORTED:%08X",minCode);
     		OutputDebugString(log);
     		pRequest->CompleteWithInformation(HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED), 0);
     	}
    @@ -198,7 +198,7 @@ void Reader::IoSmartCardSetProtocol(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZ
     void Reader::IoSmartCardTransmit(IWDFIoRequest* pRequest,SIZE_T inBufSize,SIZE_T outBufSize) {
     	UNREFERENCED_PARAMETER(inBufSize);
     	UNREFERENCED_PARAMETER(outBufSize);
    -	OutputDebugString(L"[BixVReader][TRSM]IOCTL_SMARTCARD_TRANSMIT");
    +	OutputDebugString(L"[VivoKeySmartReader][TRSM]IOCTL_SMARTCARD_TRANSMIT");
     	SCARD_IO_REQUEST *scardRequest=NULL;
     	int scardRequestSize=0;
     	BYTE *RAPDU=NULL;
    @@ -241,20 +241,20 @@ void Reader::IoSmartCardGetAttribute(IWDFIoRequest* pRequest,SIZE_T inBufSize,SI
     	char temp[300];
     
     	DWORD code=getInt(pRequest);
    -	swprintf(log,L"[BixVReader][GATT]  - code %0X",code);
    +	swprintf(log,L"[VivoKeySmartReader][GATT]  - code %0X",code);
     	OutputDebugString(log);
     
     	switch(code) {
     		case SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA009):
     			// custom attribute; RPC_TYPE
    -			OutputDebugString(L"[BixVReader][GATT]RPC_TYPE");
    +			OutputDebugString(L"[VivoKeySmartReader][GATT]RPC_TYPE");
     			setInt(device,pRequest,rpcType);
     			return;
     		case SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA00a):
     			// custom attribute; PipeName
     			if (rpcType==0) {
     				PipeReader *pipe=(PipeReader *)this;
    -				OutputDebugString(L"[BixVReader][GATT]PIPE_NAME");
    +				OutputDebugString(L"[VivoKeySmartReader][GATT]PIPE_NAME");
     				sprintf(temp,"%S",pipe->pipeName);
     				setString(device,pRequest,(char*)temp,(int)outBufSize);
     			}
    @@ -267,7 +267,7 @@ void Reader::IoSmartCardGetAttribute(IWDFIoRequest* pRequest,SIZE_T inBufSize,SI
     			// custom attribute; EventPipeName
     			if (rpcType==0) {
     				PipeReader *pipe=(PipeReader *)this;
    -				OutputDebugString(L"[BixVReader][GATT]EVENT_PIPE_NAME");
    +				OutputDebugString(L"[VivoKeySmartReader][GATT]EVENT_PIPE_NAME");
     				sprintf(temp,"%S",pipe->pipeEventName);
     				setString(device,pRequest,(char*)temp,(int)outBufSize);
     			}
    @@ -280,7 +280,7 @@ void Reader::IoSmartCardGetAttribute(IWDFIoRequest* pRequest,SIZE_T inBufSize,SI
     			// custom attribute; TCP port
     			if (rpcType==1) {
     				TcpIpReader *tcpIp=(TcpIpReader *)this;
    -				OutputDebugString(L"[BixVReader][GATT]PORT");
    +				OutputDebugString(L"[VivoKeySmartReader][GATT]PORT");
     				setInt(device,pRequest,tcpIp->port);
     			}
     			else {
    @@ -292,7 +292,7 @@ void Reader::IoSmartCardGetAttribute(IWDFIoRequest* pRequest,SIZE_T inBufSize,SI
     			// custom attribute; TCP event port
     			if (rpcType==1) {
     				TcpIpReader *tcpIp=(TcpIpReader *)this;
    -				OutputDebugString(L"[BixVReader][GATT]EVENT_PORT");
    +				OutputDebugString(L"[VivoKeySmartReader][GATT]EVENT_PORT");
     				setInt(device,pRequest,tcpIp->eventPort);
     			}
     			else {
    @@ -304,7 +304,7 @@ void Reader::IoSmartCardGetAttribute(IWDFIoRequest* pRequest,SIZE_T inBufSize,SI
     			// custom attribute; TCP base port
     			if (rpcType==1) {
     				TcpIpReader *tcpIp=(TcpIpReader *)this;
    -				OutputDebugString(L"[BixVReader][GATT]BASE_PORT");
    +				OutputDebugString(L"[VivoKeySmartReader][GATT]BASE_PORT");
     				setInt(device,pRequest,tcpIp->portBase);
     				tcpIp;
     			}
    @@ -315,23 +315,23 @@ void Reader::IoSmartCardGetAttribute(IWDFIoRequest* pRequest,SIZE_T inBufSize,SI
     			return;
     		case SCARD_ATTR_CHARACTERISTICS:
     			// 0x00000000 No special characteristics
    -			OutputDebugString(L"[BixVReader][GATT]SCARD_ATTR_CHARACTERISTICS");
    +			OutputDebugString(L"[VivoKeySmartReader][GATT]SCARD_ATTR_CHARACTERISTICS");
     			setInt(device,pRequest,0);
     			return;
     		case SCARD_ATTR_VENDOR_NAME:
    -			OutputDebugString(L"[BixVReader][GATT]SCARD_ATTR_VENDOR_NAME");
    +			OutputDebugString(L"[VivoKeySmartReader][GATT]SCARD_ATTR_VENDOR_NAME");
     			setString(device,pRequest,vendorName,(int)outBufSize);
     			return;
     		case SCARD_ATTR_VENDOR_IFD_TYPE:
    -			OutputDebugString(L"[BixVReader][GATT]SCARD_ATTR_VENDOR_IFD_TYPE");
    +			OutputDebugString(L"[VivoKeySmartReader][GATT]SCARD_ATTR_VENDOR_IFD_TYPE");
     			setString(device,pRequest,vendorIfdType,(int)outBufSize);
     			return;
     		case SCARD_ATTR_DEVICE_UNIT:
    -			OutputDebugString(L"[BixVReader][GATT]SCARD_ATTR_DEVICE_UNIT");
    +			OutputDebugString(L"[VivoKeySmartReader][GATT]SCARD_ATTR_DEVICE_UNIT");
     			setInt(device,pRequest,deviceUnit);
     			return;
     		case SCARD_ATTR_ATR_STRING:
    -			OutputDebugString(L"[BixVReader][GATT]SCARD_ATTR_ATR_STRING");
    +			OutputDebugString(L"[VivoKeySmartReader][GATT]SCARD_ATTR_ATR_STRING");
     			BYTE ATR[100];
     			DWORD ATRsize;
     			if (!QueryATR(ATR,&ATRsize))
    @@ -343,11 +343,11 @@ void Reader::IoSmartCardGetAttribute(IWDFIoRequest* pRequest,SIZE_T inBufSize,SI
     			setBuffer(device,pRequest,ATR,ATRsize);
     			return;
     		case SCARD_ATTR_CURRENT_PROTOCOL_TYPE:
    -			OutputDebugString(L"[BixVReader][GATT]SCARD_ATTR_CURRENT_PROTOCOL_TYPE");
    +			OutputDebugString(L"[VivoKeySmartReader][GATT]SCARD_ATTR_CURRENT_PROTOCOL_TYPE");
     			setInt(device,pRequest,protocol); // T=0 or T=1
     			return;
     		default: {
    -			swprintf(log,L"[BixVReader][GATT]ERROR_NOT_SUPPORTED:%08X",code);
    +			swprintf(log,L"[VivoKeySmartReader][GATT]ERROR_NOT_SUPPORTED:%08X",code);
     			OutputDebugString(log);
     			SectionLocker lock(device->m_RequestLock);
     	        pRequest->CompleteWithInformation(HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED), 0);
    diff --git a/virtualsmartcard/win32/BixVReader/Reader.h b/virtualsmartcard/win32/VivoKeySmartReader/Reader.h
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/Reader.h
    rename to virtualsmartcard/win32/VivoKeySmartReader/Reader.h
    diff --git a/virtualsmartcard/win32/BixVReader/TcpIpReader.cpp b/virtualsmartcard/win32/VivoKeySmartReader/TcpIpReader.cpp
    similarity index 86%
    rename from virtualsmartcard/win32/BixVReader/TcpIpReader.cpp
    rename to virtualsmartcard/win32/VivoKeySmartReader/TcpIpReader.cpp
    index 6b698d7..2e4d4f0 100644
    --- a/virtualsmartcard/win32/BixVReader/TcpIpReader.cpp
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/TcpIpReader.cpp
    @@ -15,10 +15,10 @@ TcpIpReader::TcpIpReader() {
     	state=SCARD_ABSENT;
     }
     void TcpIpReader::init(wchar_t *section) {
    -	portBase=GetPrivateProfileInt(L"Driver",L"RPC_PORT_BASE",29500,L"BixVReader.ini");
    +	portBase=GetPrivateProfileInt(L"Driver",L"RPC_PORT_BASE",29500,L"VivoKeySmartReader.ini");
     
    -	port=GetPrivateProfileInt(section,L"TCP_PORT",portBase+(instance<<1),L"BixVReader.ini");
    -	eventPort=GetPrivateProfileInt(section,L"TCP_EVENT_PORT",portBase+1+(instance<<1),L"BixVReader.ini");
    +	port=GetPrivateProfileInt(section,L"TCP_PORT",portBase+(instance<<1),L"VivoKeySmartReader.ini");
    +	eventPort=GetPrivateProfileInt(section,L"TCP_EVENT_PORT",portBase+1+(instance<<1),L"VivoKeySmartReader.ini");
     
     	InitializeCriticalSection(&eventSection);
     	InitializeCriticalSection(&dataSection);
    @@ -141,7 +141,7 @@ DWORD TcpIpReader::startServer() {
     					break;
     				if (ret<0) {
     					DWORD err=WSAGetLastError();
    -					swprintf(log,L"[BixVReader]wsa err:%x",err);
    +					swprintf(log,L"[VivoKeySmartReader]wsa err:%x",err);
     					OutputDebugString(log);
     					if (err==0x2736) {
     						socket=WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,0,0);
    @@ -167,7 +167,7 @@ DWORD TcpIpReader::startServer() {
     			if (AcceptSocket == INVALID_SOCKET)
     				return 0;
     
    -			swprintf(log,L"[BixVReader]Socket connected:%i",AcceptSocket);
    +			swprintf(log,L"[VivoKeySmartReader]Socket connected:%i",AcceptSocket);
     			OutputDebugString(log);
     
     			FD_ZERO(&readfds);
    @@ -183,7 +183,7 @@ DWORD TcpIpReader::startServer() {
     					break;
     				if (ret<0) {
     					DWORD err=WSAGetLastError();
    -					swprintf(log,L"[BixVReader]wsa err:%x",err);
    +					swprintf(log,L"[VivoKeySmartReader]wsa err:%x",err);
     					OutputDebugString(log);
     					if (err==0x2736) {
     						eventsocket=WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,0,0);
    @@ -207,7 +207,7 @@ DWORD TcpIpReader::startServer() {
     			if (AcceptEventSocket == INVALID_SOCKET)
     				return 0;
     
    -			swprintf(log,L"[BixVReader]Event Socket connected:%i",AcceptEventSocket);
    +			swprintf(log,L"[VivoKeySmartReader]Event Socket connected:%i",AcceptEventSocket);
     			OutputDebugString(log);
     
     			if (!waitInsertIpr.empty()) {
    @@ -231,7 +231,7 @@ DWORD TcpIpReader::startServer() {
     				int read=0;
     				if ((read=recv(AcceptEventSocket,(char*)&command,sizeof(DWORD),MSG_WAITALL))<=0) {
     					state=SCARD_ABSENT;
    -					OutputDebugString(L"[BixVReader]Socket error");
    +					OutputDebugString(L"[VivoKeySmartReader]Socket error");
     					powered=0;
     					::shutdown(AcceptSocket,SD_BOTH);
     					::shutdown(AcceptEventSocket,SD_BOTH);
    @@ -240,11 +240,11 @@ DWORD TcpIpReader::startServer() {
     						SectionLocker lock(device->m_RequestLock);
     						while (!waitRemoveIpr.empty()) {
     							CComPtr ipr = waitRemoveIpr.back();
    -							OutputDebugString(L"[BixVReader]complete Wait Remove");
    +							OutputDebugString(L"[VivoKeySmartReader]complete Wait Remove");
     							if (ipr->UnmarkCancelable()==S_OK) {
    -								OutputDebugString(L"[BixVReader]Wait Remove Unmarked");
    +								OutputDebugString(L"[VivoKeySmartReader]Wait Remove Unmarked");
     								ipr->CompleteWithInformation(STATUS_SUCCESS, 0);
    -								OutputDebugString(L"[BixVReader]Wait Remove Completed");
    +								OutputDebugString(L"[VivoKeySmartReader]Wait Remove Completed");
     							}
     							waitRemoveIpr.pop_back();
     						}
    @@ -254,18 +254,18 @@ DWORD TcpIpReader::startServer() {
     						SectionLocker lock(device->m_RequestLock);
     						while (!waitInsertIpr.empty()) {
     							CComPtr ipr = waitInsertIpr.back();
    -							OutputDebugString(L"[BixVReader]cancel Wait Remove");
    +							OutputDebugString(L"[VivoKeySmartReader]cancel Wait Remove");
     							if (ipr->UnmarkCancelable()==S_OK) {
    -								OutputDebugString(L"[BixVReader]Wait Insert Unmarked");
    +								OutputDebugString(L"[VivoKeySmartReader]Wait Insert Unmarked");
     								ipr->CompleteWithInformation(HRESULT_FROM_WIN32(ERROR_CANCELLED), 0);
    -								OutputDebugString(L"[BixVReader]Wait Insert Cancelled");
    +								OutputDebugString(L"[VivoKeySmartReader]Wait Insert Cancelled");
     							}
     							waitInsertIpr.pop_back();
     						}
     					}
     					break;
     				}
    -				OutputDebugString(L"[BixVReader]Socket data");
    +				OutputDebugString(L"[VivoKeySmartReader]Socket data");
     				if (command==0)
     					powered=0;
     				if (command==0 && !waitRemoveIpr.empty()) {
    @@ -300,7 +300,7 @@ DWORD TcpIpReader::startServer() {
     		//	OutputDebugString(log);
     		//}
     	}
    -	OutputDebugString(L"[BixVReader]Socket quit!!!");
    +	OutputDebugString(L"[VivoKeySmartReader]Socket quit!!!");
     	return 0;
     }
     
    diff --git a/virtualsmartcard/win32/BixVReader/VirtualSCReader.idl b/virtualsmartcard/win32/VivoKeySmartReader/VirtualSCReader.idl
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/VirtualSCReader.idl
    rename to virtualsmartcard/win32/VivoKeySmartReader/VirtualSCReader.idl
    diff --git a/virtualsmartcard/win32/BixVReader/BixVReader.inf b/virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.inf
    similarity index 73%
    rename from virtualsmartcard/win32/BixVReader/BixVReader.inf
    rename to virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.inf
    index df60979..e9e7ce3 100644
    Binary files a/virtualsmartcard/win32/BixVReader/BixVReader.inf and b/virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.inf differ
    diff --git a/virtualsmartcard/win32/BixVReader/BixVReader.ini b/virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.ini
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/BixVReader.ini
    rename to virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.ini
    diff --git a/virtualsmartcard/win32/BixVReader/BixVReader.rc b/virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.rc
    similarity index 69%
    rename from virtualsmartcard/win32/BixVReader/BixVReader.rc
    rename to virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.rc
    index fb1c6cc..2c90fe5 100644
    --- a/virtualsmartcard/win32/BixVReader/BixVReader.rc
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.rc
    @@ -1,24 +1,12 @@
     // Microsoft Visual C++ generated resource script.
     //
     #include "resource.h"
    -
    -#define APSTUDIO_READONLY_SYMBOLS
     /////////////////////////////////////////////////////////////////////////////
    -//
    -// Generated from the TEXTINCLUDE 2 resource.
    -//
    +// Neutral (Default) resources
     
    -/////////////////////////////////////////////////////////////////////////////
    -#undef APSTUDIO_READONLY_SYMBOLS
    -
    -/////////////////////////////////////////////////////////////////////////////
    -// Italian (Italy) resources
    -
    -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ITA)
    -#ifdef _WIN32
    -LANGUAGE LANG_ITALIAN, SUBLANG_ITALIAN
    +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUD)
    +LANGUAGE LANG_NEUTRAL, SUBLANG_DEFAULT
     #pragma code_page(1252)
    -#endif //_WIN32
     
     /////////////////////////////////////////////////////////////////////////////
     //
    @@ -40,24 +28,34 @@ VS_VERSION_INFO VERSIONINFO
     BEGIN
         BLOCK "StringFileInfo"
         BEGIN
    -        BLOCK "001004b0"
    +        BLOCK "040004b0"
             BEGIN
    -            VALUE "CompanyName", "Windows (R) Codename Longhorn DDK provider"
    -            VALUE "FileDescription", "Bix Virtual Smart Card Driver"
    +            VALUE "CompanyName", "VivoKey"
    +            VALUE "FileDescription", "VivoKey Smart Reader Driver"
                 VALUE "FileVersion", "6.0.6000.16384"
    -            VALUE "InternalName", "BixVReader"
    -            VALUE "LegalCopyright", " Microsoft Corporation. All rights reserved."
    -            VALUE "OriginalFilename", "BixVReader.dll"
    -            VALUE "ProductName", "Windows (R) Codename Longhorn DDK driver"
    +            VALUE "InternalName", "VivoKeySmartReader"
    +            VALUE "LegalCopyright", "Frank Morgner, GPLv3 and VivoKey"
    +            VALUE "OriginalFilename", "VivoKeySmartReader.dll"
    +            VALUE "ProductName", "VivoKey Smart Reader"
                 VALUE "ProductVersion", "6.0.6000.16384"
             END
         END
         BLOCK "VarFileInfo"
         BEGIN
    -        VALUE "Translation", 0x10, 1200
    +        VALUE "Translation", 0x400, 1200
         END
     END
     
    +#endif    // Neutral (Default) resources
    +/////////////////////////////////////////////////////////////////////////////
    +
    +
    +/////////////////////////////////////////////////////////////////////////////
    +// Italian (Italy) resources
    +
    +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ITA)
    +LANGUAGE LANG_ITALIAN, SUBLANG_ITALIAN
    +#pragma code_page(1252)
     
     #ifdef APSTUDIO_INVOKED
     /////////////////////////////////////////////////////////////////////////////
    @@ -94,7 +92,7 @@ END
     // Generated from the TEXTINCLUDE 3 resource.
     //
     
    -P
    +
     /////////////////////////////////////////////////////////////////////////////
     #endif    // not APSTUDIO_INVOKED
     
    diff --git a/virtualsmartcard/win32/BixVReader/BixVReader.vcxproj b/virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.vcxproj
    similarity index 98%
    rename from virtualsmartcard/win32/BixVReader/BixVReader.vcxproj
    rename to virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.vcxproj
    index 5256326..3dc01d8 100644
    --- a/virtualsmartcard/win32/BixVReader/BixVReader.vcxproj
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.vcxproj
    @@ -49,10 +49,10 @@
         
       
       
    -    
    +    
       
       
    -    
    +    
       
       
         {1D286E48-DE79-41FF-844B-56ED3764D4DA}
    @@ -61,7 +61,7 @@
         12.0
         Debug
         Win32
    -    BixVReader
    +    VivoKeySmartReader
         10.0.18362.0
       
       
    diff --git a/virtualsmartcard/win32/BixVReader/BixVReader.vcxproj.filters b/virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.vcxproj.filters
    similarity index 97%
    rename from virtualsmartcard/win32/BixVReader/BixVReader.vcxproj.filters
    rename to virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.vcxproj.filters
    index 5a66b1b..17cde7a 100644
    --- a/virtualsmartcard/win32/BixVReader/BixVReader.vcxproj.filters
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/VivoKeySmartReader.vcxproj.filters
    @@ -22,7 +22,7 @@
         
       
       
    -    
    +    
           Driver Files
         
       
    @@ -70,7 +70,7 @@
         
       
       
    -    
    +    
           Resource Files
         
       
    diff --git a/virtualsmartcard/win32/BixVReader/VpcdReader.cpp b/virtualsmartcard/win32/VivoKeySmartReader/VpcdReader.cpp
    similarity index 94%
    rename from virtualsmartcard/win32/BixVReader/VpcdReader.cpp
    rename to virtualsmartcard/win32/VivoKeySmartReader/VpcdReader.cpp
    index 8dbe921..f77fb94 100644
    --- a/virtualsmartcard/win32/BixVReader/VpcdReader.cpp
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/VpcdReader.cpp
    @@ -22,9 +22,9 @@ VpcdReader::~VpcdReader() {
     	DeleteCriticalSection(&ioSection);
     }
     void VpcdReader::init(wchar_t *section) {
    -	portBase=GetPrivateProfileInt(L"Driver",L"RPC_PORT_BASE",VPCDPORT,L"BixVReader.ini");
    +	portBase=GetPrivateProfileInt(L"Driver",L"RPC_PORT_BASE",VPCDPORT,L"VivoKeySmartReader.ini");
     
    -	port=(short) GetPrivateProfileInt(section,L"TCP_PORT",portBase+instance,L"BixVReader.ini");
    +	port=(short) GetPrivateProfileInt(section,L"TCP_PORT",portBase+instance,L"VivoKeySmartReader.ini");
     }
     
     bool VpcdReader::CheckATR() {
    diff --git a/virtualsmartcard/win32/BixVReader/device.cpp b/virtualsmartcard/win32/VivoKeySmartReader/device.cpp
    similarity index 84%
    rename from virtualsmartcard/win32/BixVReader/device.cpp
    rename to virtualsmartcard/win32/VivoKeySmartReader/device.cpp
    index ba519cf..21225ca 100644
    --- a/virtualsmartcard/win32/BixVReader/device.cpp
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/device.cpp
    @@ -38,7 +38,7 @@ CMyDevice::CreateInstance(
         CComObject* device = NULL;
         HRESULT hr;
     
    -    OutputDebugString(L"[BixVReader]CreateInstance");    //
    +    OutputDebugString(L"[VivoKeySmartReader]CreateInstance");    //
         // Allocate a new instance of the device class.
         //
         hr = CComObject::CreateInstance(&device);
    @@ -53,35 +53,35 @@ CMyDevice::CreateInstance(
         //
         device->AddRef();
     
    -    OutputDebugString(L"[BixVReader]SetLockingConstraint");    //
    +    OutputDebugString(L"[VivoKeySmartReader]SetLockingConstraint");    //
         FxDeviceInit->SetLockingConstraint(WdfDeviceLevel);
     
         CComPtr spCallback;
    -    OutputDebugString(L"[BixVReader]QueryInterface");    //
    +    OutputDebugString(L"[VivoKeySmartReader]QueryInterface");    //
         hr = device->QueryInterface(IID_IUnknown, (void**)&spCallback);
     
         CComPtr spIWDFDevice;
         if (SUCCEEDED(hr))
         {
    -        OutputDebugString(L"[BixVReader]CreateDevice");    //
    +        OutputDebugString(L"[VivoKeySmartReader]CreateDevice");    //
             hr = FxDriver->CreateDevice(FxDeviceInit, spCallback, &spIWDFDevice);
         }
     
    -    device->numInstances=GetPrivateProfileInt(L"Driver",L"NumReaders",1,L"BixVReader.ini");
    +    device->numInstances=GetPrivateProfileInt(L"Driver",L"NumReaders",1,L"VivoKeySmartReader.ini");
     
         WSADATA wsaData;
         int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
         if (iResult != NO_ERROR) {
    -        OutputDebugString(L"[BixVReader]Error at WSAStartup()\n");
    +        OutputDebugString(L"[VivoKeySmartReader]Error at WSAStartup()\n");
         }
     
         for (int i=0;inumInstances;i++) {
    -        OutputDebugString(L"[BixVReader]CreateDeviceInterface");    //
    +        OutputDebugString(L"[VivoKeySmartReader]CreateDeviceInterface");    //
             wchar_t name[10];
             swprintf(name,L"DEV%i",i);
     
             if (spIWDFDevice->CreateDeviceInterface(&SmartCardReaderGuid,name)!=0)
    -            OutputDebugString(L"[BixVReader]CreateDeviceInterface Failed");
    +            OutputDebugString(L"[VivoKeySmartReader]CreateDeviceInterface Failed");
         }
     
         SAFE_RELEASE(device);
    @@ -98,7 +98,7 @@ void CMyDevice::ProcessIoControl(__in IWDFIoQueue*     pQueue,
             SectionLogger a(__FUNCTION__);
         UNREFERENCED_PARAMETER(pQueue);
         wchar_t log[300];
    -    swprintf(log,L"[BixVReader][IOCT]IOCTL %08X - In %i Out %i",ControlCode,inBufSize,outBufSize);
    +    swprintf(log,L"[VivoKeySmartReader][IOCT]IOCTL %08X - In %i Out %i",ControlCode,inBufSize,outBufSize);
         OutputDebugString(log);
     
         //SectionLocker lock(m_RequestLock);
    @@ -148,7 +148,7 @@ void CMyDevice::ProcessIoControl(__in IWDFIoQueue*     pQueue,
             reader.IoSmartCardTransmit(pRequest,inBufSize,outBufSize);
             return;
         }
    -    swprintf(log,L"[BixVReader][IOCT]ERROR_NOT_SUPPORTED:%08X",ControlCode);
    +    swprintf(log,L"[VivoKeySmartReader][IOCT]ERROR_NOT_SUPPORTED:%08X",ControlCode);
         OutputDebugString(log);
         pRequest->CompleteWithInformation(HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED), 0);
     
    @@ -228,7 +228,7 @@ HRESULT CMyDevice::OnD0Entry(IN IWDFDevice*  pWdfDevice,IN WDF_POWER_DEVICE_STAT
         UNREFERENCED_PARAMETER(pWdfDevice);
         UNREFERENCED_PARAMETER(previousState);
     
    -    numInstances=GetPrivateProfileInt(L"Driver",L"NumReaders",1,L"BixVReader.ini");
    +    numInstances=GetPrivateProfileInt(L"Driver",L"NumReaders",1,L"VivoKeySmartReader.ini");
         readers.resize(numInstances);
     
         for (int i=0;iinstance=i;
             readers[i]->device=this;
    -        GetPrivateProfileStringA(sectionA,"VENDOR_NAME","Bix",readers[i]->vendorName,sizeof readers[i]->vendorName,"BixVReader.ini");
    -        GetPrivateProfileStringA(sectionA,"VENDOR_IFD_TYPE","VIRTUAL_CARD_READER",readers[i]->vendorIfdType,sizeof readers[i]->vendorIfdType,"BixVReader.ini");
    -        readers[i]->deviceUnit=GetPrivateProfileInt(section,L"DEVICE_UNIT",i,L"BixVReader.ini");
    +        GetPrivateProfileStringA(sectionA,"VENDOR_NAME","VivoKey",readers[i]->vendorName,sizeof readers[i]->vendorName,"VivoKeySmartReader.ini");
    +        GetPrivateProfileStringA(sectionA,"VENDOR_IFD_TYPE","VIRTUAL_CARD_READER",readers[i]->vendorIfdType,sizeof readers[i]->vendorIfdType,"VivoKeySmartReader.ini");
    +        readers[i]->deviceUnit=GetPrivateProfileInt(section,L"DEVICE_UNIT",i,L"VivoKeySmartReader.ini");
             readers[i]->protocol=0;
     
             readers[i]->init(section);
    @@ -280,21 +280,21 @@ void CMyDevice::shutDown() {
     HRESULT CMyDevice::OnQueryRemove(IN IWDFDevice*  pWdfDevice) {
         SectionLogger a(__FUNCTION__);
         UNREFERENCED_PARAMETER(pWdfDevice);
    -    OutputDebugString(L"[BixVReader]OnQueryRemove");
    +    OutputDebugString(L"[VivoKeySmartReader]OnQueryRemove");
         shutDown();
         return S_OK;
     }
     HRESULT CMyDevice::OnQueryStop(IN IWDFDevice*  pWdfDevice) {
         SectionLogger a(__FUNCTION__);
         UNREFERENCED_PARAMETER(pWdfDevice);
    -    OutputDebugString(L"[BixVReader]OnQueryStop");
    +    OutputDebugString(L"[VivoKeySmartReader]OnQueryStop");
         shutDown();
         return S_OK;
     }
     void CMyDevice::OnSurpriseRemoval(IN IWDFDevice*  pWdfDevice) {
         SectionLogger a(__FUNCTION__);
         UNREFERENCED_PARAMETER(pWdfDevice);
    -    OutputDebugString(L"[BixVReader]OnSurpriseRemoval");
    +    OutputDebugString(L"[VivoKeySmartReader]OnSurpriseRemoval");
         shutDown();
     }
     
    @@ -321,14 +321,14 @@ STDMETHODIMP_ (void) CMyDevice::OnCancel(IN IWDFIoRequest*  pWdfRequest) {
         for (std::vector< CComPtr >::iterator it = reader.waitRemoveIpr.begin();
                 it != reader.waitRemoveIpr.end(); it++) {
             if (pWdfRequest == *it) {
    -            OutputDebugString(L"[BixVReader]Cancel Remove");
    +            OutputDebugString(L"[VivoKeySmartReader]Cancel Remove");
                 reader.waitRemoveIpr.erase(it);
             }
         }
         for (std::vector< CComPtr >::iterator it = reader.waitInsertIpr.begin();
                 it != reader.waitInsertIpr.end(); it++) {
             if (pWdfRequest == *it) {
    -            OutputDebugString(L"[BixVReader]Cancel Insert");
    +            OutputDebugString(L"[VivoKeySmartReader]Cancel Insert");
                 reader.waitInsertIpr.erase(it);
             }
         }
    diff --git a/virtualsmartcard/win32/BixVReader/device.h b/virtualsmartcard/win32/VivoKeySmartReader/device.h
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/device.h
    rename to virtualsmartcard/win32/VivoKeySmartReader/device.h
    diff --git a/virtualsmartcard/win32/BixVReader/driver.cpp b/virtualsmartcard/win32/VivoKeySmartReader/driver.cpp
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/driver.cpp
    rename to virtualsmartcard/win32/VivoKeySmartReader/driver.cpp
    diff --git a/virtualsmartcard/win32/BixVReader/driver.h b/virtualsmartcard/win32/VivoKeySmartReader/driver.h
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/driver.h
    rename to virtualsmartcard/win32/VivoKeySmartReader/driver.h
    diff --git a/virtualsmartcard/win32/BixVReader/exports.def b/virtualsmartcard/win32/VivoKeySmartReader/exports.def
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/exports.def
    rename to virtualsmartcard/win32/VivoKeySmartReader/exports.def
    diff --git a/virtualsmartcard/win32/BixVReader/internal.h b/virtualsmartcard/win32/VivoKeySmartReader/internal.h
    similarity index 88%
    rename from virtualsmartcard/win32/BixVReader/internal.h
    rename to virtualsmartcard/win32/VivoKeySmartReader/internal.h
    index 1d4c9d6..591b7c7 100644
    --- a/virtualsmartcard/win32/BixVReader/internal.h
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/internal.h
    @@ -61,12 +61,12 @@ DEFINE_GUID(SmartCardReaderGuid, 0x50DD5230, 0xBA8A, 0x11D1, 0xBF,0x5D,0x00,0x00
     //	funcTrace (char *func) {
     //		TCHAR funcName[500];
     //		wsprintf(funcN, _T("%S"), func);
    -//		wsprintf(funcName, _T("[BixVReader]IN -> %s"), funcN);
    +//		wsprintf(funcName, _T("[VivoKeySmartReader]IN -> %s"), funcN);
     //		OutputDebugString(funcName);
     //	}
     //	~funcTrace () {
     //		TCHAR funcName[500];
    -//		wsprintf(funcName, _T("[BixVReader]OUT -> %s"), funcN);
    +//		wsprintf(funcName, _T("[VivoKeySmartReader]OUT -> %s"), funcN);
     //		OutputDebugString(funcName);
     //	}
     //};
    diff --git a/virtualsmartcard/win32/BixVReader/memory.cpp b/virtualsmartcard/win32/VivoKeySmartReader/memory.cpp
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/memory.cpp
    rename to virtualsmartcard/win32/VivoKeySmartReader/memory.cpp
    diff --git a/virtualsmartcard/win32/BixVReader/memory.h b/virtualsmartcard/win32/VivoKeySmartReader/memory.h
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/memory.h
    rename to virtualsmartcard/win32/VivoKeySmartReader/memory.h
    diff --git a/virtualsmartcard/win32/BixVReader/resource.h b/virtualsmartcard/win32/VivoKeySmartReader/resource.h
    similarity index 97%
    rename from virtualsmartcard/win32/BixVReader/resource.h
    rename to virtualsmartcard/win32/VivoKeySmartReader/resource.h
    index 6f6d713..cd8bc94 100644
    --- a/virtualsmartcard/win32/BixVReader/resource.h
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/resource.h
    @@ -1,6 +1,6 @@
     //{{NO_DEPENDENCIES}}
     // Microsoft Visual C++ generated include file.
    -// Used by Skeleton.rc
    +// Used by VivoKeySmartReader.rc
     //
     #define SW_HIDE                         0
     #define HIDE_WINDOW                     0
    diff --git a/virtualsmartcard/win32/BixVReader/sectionLocker.cpp b/virtualsmartcard/win32/VivoKeySmartReader/sectionLocker.cpp
    similarity index 64%
    rename from virtualsmartcard/win32/BixVReader/sectionLocker.cpp
    rename to virtualsmartcard/win32/VivoKeySmartReader/sectionLocker.cpp
    index 2792ed7..b68c0d8 100644
    --- a/virtualsmartcard/win32/BixVReader/sectionLocker.cpp
    +++ b/virtualsmartcard/win32/VivoKeySmartReader/sectionLocker.cpp
    @@ -9,12 +9,12 @@ SectionLocker::SectionLocker(CRITICAL_SECTION &critsection,char *function,int li
     	DWORD start=GetTickCount();
     	if (TryEnterCriticalSection(section)==0) {
     		char logBuffer[500];
    -		sprintf(logBuffer,"[BixVReader]Locking:Function:%s,Line:%i,Object:%p,Lock:%p",Function,Line,Object,section);
    +		sprintf(logBuffer,"[VivoKeySmartReader]Locking:Function:%s,Line:%i,Object:%p,Lock:%p",Function,Line,Object,section);
     		OutputDebugStringA(logBuffer);
     		ShowMe=section;
     		EnterCriticalSection(section);
     		DWORD end=GetTickCount();	
    -		sprintf(logBuffer,"[BixVReader]Elapsed:%i ms",end-start);
    +		sprintf(logBuffer,"[VivoKeySmartReader]Elapsed:%i ms",end-start);
     		OutputDebugStringA(logBuffer);
     	}
     }
    @@ -22,7 +22,7 @@ SectionLocker::SectionLocker(CRITICAL_SECTION &critsection,char *function,int li
     SectionLocker::~SectionLocker() {
     	if (section==ShowMe) {
     		char logBuffer[500];
    -		sprintf(logBuffer,"[BixVReader]Unlocking:Function:%s,Line:%i,Object:%p,Lock:%p",Function,Line,Object,section);
    +		sprintf(logBuffer,"[VivoKeySmartReader]Unlocking:Function:%s,Line:%i,Object:%p,Lock:%p",Function,Line,Object,section);
     		OutputDebugStringA(logBuffer);
     		ShowMe=NULL;
     	}
    @@ -34,13 +34,13 @@ SectionLogger::SectionLogger(char *section) {
     	start=GetTickCount();
     	char logBuffer[500];
     	SectionName=section;
    -	sprintf(logBuffer,"[BixVReader]Start section:%s",SectionName);
    +	sprintf(logBuffer,"[VivoKeySmartReader]Start section:%s",SectionName);
     	OutputDebugStringA(logBuffer);
     }
     SectionLogger::~SectionLogger() {
     	DWORD end=GetTickCount();	
     	char logBuffer[500];
    -	sprintf(logBuffer,"[BixVReader]End section:%s elapsed:%i",SectionName,end-start);
    +	sprintf(logBuffer,"[VivoKeySmartReader]End section:%s elapsed:%i",SectionName,end-start);
     	OutputDebugStringA(logBuffer);
     }
     
    diff --git a/virtualsmartcard/win32/BixVReader/sectionLocker.h b/virtualsmartcard/win32/VivoKeySmartReader/sectionLocker.h
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReader/sectionLocker.h
    rename to virtualsmartcard/win32/VivoKeySmartReader/sectionLocker.h
    diff --git a/virtualsmartcard/win32/BixVReaderInstaller/.gitignore b/virtualsmartcard/win32/VivoKeySmartReaderInstaller/.gitignore
    similarity index 100%
    rename from virtualsmartcard/win32/BixVReaderInstaller/.gitignore
    rename to virtualsmartcard/win32/VivoKeySmartReaderInstaller/.gitignore
    diff --git a/virtualsmartcard/win32/BixVReaderInstaller/Product.wxs b/virtualsmartcard/win32/VivoKeySmartReaderInstaller/Product.wxs
    similarity index 53%
    rename from virtualsmartcard/win32/BixVReaderInstaller/Product.wxs
    rename to virtualsmartcard/win32/VivoKeySmartReaderInstaller/Product.wxs
    index 407c911..779d788 100644
    --- a/virtualsmartcard/win32/BixVReaderInstaller/Product.wxs
    +++ b/virtualsmartcard/win32/VivoKeySmartReaderInstaller/Product.wxs
    @@ -13,30 +13,29 @@
     
         
     
    -	
    +	
     		
     
    -		
    +		
     		
         
         
           
    -                  
    -            
    -               
    -              
    -              
    -              
    -              
    +                  
    +            
    +               
    +              
    +              
    +              
    +              
                          
             
           
     
           
    -        
    -          
    +        
    +          
             
           
         
    @@ -44,15 +43,15 @@
         
     
         
    -    
    +    
         
         
    -    
    +    
     
    -		
    -      
    -      
    -		
    +	
    +      
    +      
    +	
     
         
           
    diff --git a/virtualsmartcard/win32/BixVReaderInstaller/BixVReader.ini.template b/virtualsmartcard/win32/VivoKeySmartReaderInstaller/VivoKeySmartReader.ini.template
    similarity index 50%
    rename from virtualsmartcard/win32/BixVReaderInstaller/BixVReader.ini.template
    rename to virtualsmartcard/win32/VivoKeySmartReaderInstaller/VivoKeySmartReader.ini.template
    index a8d217d..d46cb8d 100644
    --- a/virtualsmartcard/win32/BixVReaderInstaller/BixVReader.ini.template
    +++ b/virtualsmartcard/win32/VivoKeySmartReaderInstaller/VivoKeySmartReader.ini.template
    @@ -3,7 +3,7 @@ NumReaders=1
     
     [Reader0]
     RPC_TYPE=2
    -VENDOR_NAME=Virtual Smart Card Architecture
    -VENDOR_IFD_TYPE=Virtual PCD
    +VENDOR_NAME=VivoKey
    +VENDOR_IFD_TYPE=Smart Reader
     TCP_PORT=35963
     DECIVE_UNIT=0
    \ No newline at end of file
    diff --git a/virtualsmartcard/win32/BixVReaderInstaller/BixVReaderInstaller.sln b/virtualsmartcard/win32/VivoKeySmartReaderInstaller/VivoKeySmartReaderInstaller.sln
    similarity index 87%
    rename from virtualsmartcard/win32/BixVReaderInstaller/BixVReaderInstaller.sln
    rename to virtualsmartcard/win32/VivoKeySmartReaderInstaller/VivoKeySmartReaderInstaller.sln
    index a60dc0b..30e626c 100644
    --- a/virtualsmartcard/win32/BixVReaderInstaller/BixVReaderInstaller.sln
    +++ b/virtualsmartcard/win32/VivoKeySmartReaderInstaller/VivoKeySmartReaderInstaller.sln
    @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
     # Visual Studio 14
     VisualStudioVersion = 14.0.23107.0
     MinimumVisualStudioVersion = 10.0.40219.1
    -Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "BixVReaderInstaller", "BixVReaderInstaller.wixproj", "{9C30A09E-1A74-4091-93B7-6296F94CE77C}"
    +Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "VivoKeySmartReaderInstaller", "VivoKeySmartReaderInstaller.wixproj", "{9C30A09E-1A74-4091-93B7-6296F94CE77C}"
     EndProject
     Global
     	GlobalSection(SolutionConfigurationPlatforms) = preSolution
    diff --git a/virtualsmartcard/win32/BixVReaderInstaller/BixVReaderInstaller.wixproj b/virtualsmartcard/win32/VivoKeySmartReaderInstaller/VivoKeySmartReaderInstaller.wixproj
    similarity index 93%
    rename from virtualsmartcard/win32/BixVReaderInstaller/BixVReaderInstaller.wixproj
    rename to virtualsmartcard/win32/VivoKeySmartReaderInstaller/VivoKeySmartReaderInstaller.wixproj
    index 1da82ef..b302abd 100644
    --- a/virtualsmartcard/win32/BixVReaderInstaller/BixVReaderInstaller.wixproj
    +++ b/virtualsmartcard/win32/VivoKeySmartReaderInstaller/VivoKeySmartReaderInstaller.wixproj
    @@ -6,7 +6,7 @@
         3.10
         9c30a09e-1a74-4091-93b7-6296f94ce77c
         2.0
    -    BixVReaderInstaller
    +    VivoKeySmartReaderInstaller
         Package
         $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
         $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
    @@ -33,8 +33,8 @@
         
       
       
    -    
    -      BixVReader
    +    
    +      VivoKeySmartReader
           {1d286e48-de79-41ff-844b-56ed3764d4da}
           True
           True
    @@ -51,7 +51,7 @@
         
       
       
    -    
    +