Some additional code linting
- remove unused imports
- remove unecessary parenthesis from if statements
- created TLVutils TAG dictionary in creation time
- Use pycryptodome instead of pycrypto
- Fixed some unit tests asserts
- fixed some instances that sending message to vpcd the msg is considered a string object instead of byte array
- make TLVutils.pack work in python 3
Fix prerequisites and Automake variables in the Makefiles, so that
running "make dist" does not fail if the program is not built. When
running help2man, have it execute "gengetopt --show-help" instead
of the built program to obtain the help message.
* Fix length of filesize parameter in FCP template
'Number of data bytes in the file' parameters should be represented on
two bytes in FCP.
* Extendable length of filesize parameter in FCP
Increase length of filesize parameter in FCP template if can't be
represented on two bytes.
DF names shall be globally uniqe within a given card. Selecting by DF
name should be made on card level instead of current DF level.
A new list has been inroduced as a static attribute of MF in order to
track each named DF.
* Prevent prettyprint from infinite recursion
By adding a possible self-pointer to MF prettyprint_anything function
got into an infinite loop. Printing of named DFs has been cut off.
hashlib.pbkdf2_hmac has been backported to Python 2.7 (see PEP 466). In
order to avoid reinventing the wheel and to include less third party
code we switch to the stdlib implementation.
In case of AgeVerification , DocumentValidity and PlaceVerification checks, the return code is not longer hard coded.
Based on given reference values a check is does against given DG3, DG8 and DG18 values
Still ToDo is incomplete DG8 BirthDate in Format YYYY-XX where the day is missing
CommunityID is taken now from default value or dataset file in readable digit-string Format.
Benefits:
- internal "NotOnChip" function is now working for DG18
- The value is readable ;-)
libnpa: requires an ID card that is initialized for QES. Today, this
means you need to register at sign-me.
virtualsmartcard: We don't actually create a real signature, because
PyCrypto can't handle ECDSA, let alone brainpoolP256r1. We only return a
64 byte buffer.
There are now tests for most currently implemented card types. Tests for
new card types can easily be added by inheriting from the basic test
class. The ePass card type is currently missing from the tests because
the CardGenerator for this class currently only works with user
interaction.