Analysed and refactored code with regards to initial pairing and LTK / SK creation to make initial LTK key agreement more robust against LTK and SK negotiation failures with AirID1 devices.
Moved exchangeKey to AIDDeviceStateConnected
Added state counter to better track state changes and having better control for state transits
replaced calls to exchangeKey by state reenter
Use state counter for detecting init abort on problems or connectivity issues when Key agreement is in progress.
changed Timer Timeout for pairing (from selection to successful final initialisation) from 30.0 seconds to 50.0 seconds
Changed encryption TAG length from 8 to 4 to comply with other platform drivers and make packet transmit more robust
Updated logging to use device name where appropriate
Fixed:
AirID reader becomes disconnected during initial connection with pairing (regression)
Fixed mis guided Timer Timeout which sometimes fires even when Timer was invalidated. This issue was partly responsible for firing "Initialisation Timeout" Errors even when LTK and SK where successfully negotiated.
Use encrypted data length for packet calculation not the "unencrypted" data length.
Analyze code with regards to initial pairing and LTK/SK creation to make initial LTK key agreement more robust against LTK and SK negotiation failures with AirID1 devices.
Analyze and test code with regards to time intervals to eliminate AirID reader stuck on "not bonded yet".
Test and change the time intervals and delays on Bluetooth connection to make the connection more stable.
Set the key remotely from the app for saving LTKs is available. (Optional)
In case of problems with BLE connection, please change settings: "AirID settings > Force 256bit > No" to allow full compatibility with prior software versions
1.2.4
New or changed:
Changed connection factory default to "ON/waiting" after Settings > Factory Reset
No splash screen after device reboot
Fixed issues:
Display charging status correctly if USB Card Reader mode is disabled
Display correct device name after Settings >reset keys
AirID freezing after initial pairing / connection with Android fixed by watchdog enabling
Android stability improvements:
Stability improvements if connection interval is set too low, e.g. 7.5ms
In case of problems with BLE connection, please change settings: "AirID settings > Force 256bit > No" to allow full compatibility with prior software versions
1.2.2
Performance related changes:
Adjustment of low battery limit to avoid problems due to low battery
Fix initial card state in USB reader mode on windows 7
More error checks in case of connection loss
Connection interval handling improvements
Default signal strength to maximum
Please set signal strength to "maximum" to ensure best wireless AirID connection
In case of problems with BLE connection, please change settings: "AirID settings > Force 256bit > No" to allow full compatibility with prior software versions
1.2.1
Security related changes:
Improved protection for replay attacks
Improvement of encryption algorithm: using CCM instead of ECB
Improvement of Session Key management
Improved protocol downgrade protection
Implementation of „Force 256bit mode“ so that AirID cannot be forced down to communicate with AES 128bit encryption. Force 256bit mode is enabled per default
Performance related changes:
Reduction of power consumption
Power down the smart card on out-of-coverage
Have a higher connection interval when there is no BLE traffic for some time
Correct rates in USB CCID descriptor
Improved Android compatibility (discovering of our GATT service)
Usability related changes:
Smart card icon on AirID display blinks when the card is powered on
New setting menu item „USB card reader mode“ so that the USB cardreader mode can be enabled by default when USB is connected
In case of problems when pairing, please change settings: "AirID settings > Force 256bit > No" to allow full compatibility with prior software versions