diff --git a/python/README.md b/python/README.md
index faabff2..ca9bd33 100644
--- a/python/README.md
+++ b/python/README.md
@@ -178,3 +178,941 @@ has details for how to run the tests. The module tests are not comprehensive for
 of cryptoauthlib but rather are meant to test the python module code only against the library to ensure
 the interfaces are correct and ctypes structures match the platform.
 
+Release notes
+-----------
+03/04/2019
+  - mbed TLS wrapper added
+  - Minor bug fixes
+
+01/25/2019
+  - Python JWT support
+  - Python configuration structures added
+  - Restructure of secure boot app
+
+01/04/2019
+  - Added GCM functions
+  - Split AES modes into separate files
+  - Bug fix in SWI START driver
+
+10/25/2018
+  - Added basic certificate functions to the python wrapper.
+  - Added Espressif ESP32 I2C driver.
+  - Made generic Atmel START drivers to support most MCUs in START.
+  - Added AES-CTR mode functions.
+  - Python wrapper functions now return single values with AtcaReference.
+  - Added mutex support to HAL and better support for freeRTOS.
+  
+08/17/2018
+  - Better support for multiple kit protocol devices
+
+07/25/2018
+  - Clean up python wrapper
+
+07/18/2018
+  - Added ATCA_NO_HEAP define to remove use of malloc/free.
+  - Moved PEM functions to their own file in atcacert.
+  - Added wake retry to accomodate power on self test delay.
+  - Added ca_cert_def member to atcacert_def_s so cert chains can be traversed
+    as a linked list.
+
+03/29/2018
+  - Added support for response polling by default, which will make commands
+    return faster (define ATCA_NO_POLL to use old delay method).
+  - Removed atcatls related files as they were of limited value.
+  - Test framework generates a prompt before locking test configuration.
+  - Test framework puts device to sleep between tests.
+  - Fixed mode parameter issue in atcah_gen_key_msg().
+  - ATECC608A health test error code added.
+
+01/15/2018
+  - Added AES-128 CBC implementation using AES command
+  - Added AES-128 CMAC implementation using AES command
+  
+11/22/2017
+  - Added support for FLEXCOM6 on SAMG55 driver
+  
+11/17/2017
+  - Added library support for the ATECC608A device
+  - Added support for Counter command
+  - atca_basic functions and tests now split into multiple files based on
+    command
+  - Added support for multiple base64 encoding rules
+  - Added support for JSON Web Tokens (jwt)
+  - Fixed atcab_write_enc() function to encrypt the data even when the device
+    is unlocked
+  - Fixed atcab_base64encode_() for the extra newline
+  - Updated atcab_ecdh_enc() to work more consistently
+
+07/01/2017
+  - Removed assumption of SN[0:1]=0123, SN[8]=EE. SN now needs to be passed in
+    for functions in atca_host and atca_basic functions will now read the
+    config zone for the SN if needed.
+  - Renamed atcab_gendig_host() to atcab_gendig() since it's not a host
+    function. Removed original atcab_gendig(), which had limited scope.
+  - Fixed atcah_hmac() for host side HMAC calculations. Added atcab_hmac().
+  - Removed unnecessary ATCADeviceType parameters from some atca_basic
+    functions.
+  - Added atcacert_create_csr() to create a signed CSR.
+  - New HAL implementation for Kit protocol over HID on Linux. Please see the
+    Incorporating CryptoAuthLib in a Linux project using USB HID devices
+    section in this file for more information.
+  - Added atcacert_write_cert() for writing certificates to the device.
+  - Added support for dynamic length certificate serial numbers in atcacert.
+  - Added atcab_write() for lower level write commands.
+  - Fixed atcah_write_auth_mac(), which had wrong OpCode.
+  - Added atcab_verify() command for lower level verify commands.
+  - Added atcab_verify_stored() for verifying data with a stored public key.
+  - Removed atcab_write_bytes_slot(). Use atcab_write_bytes_zone() instead.
+  - Modified atcab_write_bytes_zone() and atcab_read_bytes_zone() to specify a
+    slot
+  - Added atcab_verify_validate() and atcab_verify_invalidate()
+  - Improvements to host functions to handle more cases.
+  - Added atcab_updateextra(), atcab_derive_key()
+  - Added support for more certificate formats.
+  - Added general purpose hardware SHA256 functions. See atcab_hw_sha2_256().
+  - Removed device specific config read/write. Generic now handles both.
+  - Removed unnecessary response parameter from lock commands.
+  - Enhanced and added unit tests.
+  - Encrypted read and write functions now handle keys with SlotConfig.NoMac
+    set
+  - atcab_cmp_config_zone() handles all devices now.
+  - Fixed some edge cases in atcab_read_bytes_zone().
+  - Updated atSHA() to work with all devices.
+  - Fixed atcacert_get_device_locs() when using stored sn.
+  
+01/08/2016
+  - New HAL implementations for
+    - Single Wire interface for SAMD21 / SAMR21
+    - SAMV71 I2C HAL implementation
+    - XMega A3Bu HAL implementation
+  - Added atcab_version() method to return current version string of libary to
+    application
+  - New Bus and Discovery API 
+    - returns a list of ATCA device configurations for each CryptoAuth device
+      found
+    - currently implemented on SAMD21/R21 I2C, SAMV71
+    - additional discovery implementations to come
+  - TLS APIs solidified and documented
+  - Added missing doxygen documentation for some CryptoAuthLib methods 
+  - Stubs for HAL SPI removed as they are unused for SHA204A and ECC508A
+    support
+  - bug fixes
+  - updated atcab_sha() to accept a variable length message that is > 64 bytes
+    and not a multiple of 64 bytes (the SHA block size).
+  - refactored Cert I/O and Cert Data tests to be smaller
+  - 'uncrustify' source formatting
+  - published on GitHub
+
+9/19/2015
+  - Kit protocol over HID on Windows
+  - Kit protocol over CDC on Linux
+  - TLS integration with ATECC508A
+  - Certificate I/O and reconstruction 
+  - New SHA2 implementation
+  - Major update to API docs, Doxygen files found in cryptoauthlib/docs
+  - load cryptoauthlib/docs/index.html with your browser
+
+Release notes
+-----------
+03/04/2019
+  - mbed TLS wrapper added
+  - Minor bug fixes
+
+01/25/2019
+  - Python JWT support
+  - Python configuration structures added
+  - Restructure of secure boot app
+
+01/04/2019
+  - Added GCM functions
+  - Split AES modes into separate files
+  - Bug fix in SWI START driver
+
+10/25/2018
+  - Added basic certificate functions to the python wrapper.
+  - Added Espressif ESP32 I2C driver.
+  - Made generic Atmel START drivers to support most MCUs in START.
+  - Added AES-CTR mode functions.
+  - Python wrapper functions now return single values with AtcaReference.
+  - Added mutex support to HAL and better support for freeRTOS.
+  
+08/17/2018
+  - Better support for multiple kit protocol devices
+
+07/25/2018
+  - Clean up python wrapper
+
+07/18/2018
+  - Added ATCA_NO_HEAP define to remove use of malloc/free.
+  - Moved PEM functions to their own file in atcacert.
+  - Added wake retry to accomodate power on self test delay.
+  - Added ca_cert_def member to atcacert_def_s so cert chains can be traversed
+    as a linked list.
+
+03/29/2018
+  - Added support for response polling by default, which will make commands
+    return faster (define ATCA_NO_POLL to use old delay method).
+  - Removed atcatls related files as they were of limited value.
+  - Test framework generates a prompt before locking test configuration.
+  - Test framework puts device to sleep between tests.
+  - Fixed mode parameter issue in atcah_gen_key_msg().
+  - ATECC608A health test error code added.
+
+01/15/2018
+  - Added AES-128 CBC implementation using AES command
+  - Added AES-128 CMAC implementation using AES command
+  
+11/22/2017
+  - Added support for FLEXCOM6 on SAMG55 driver
+  
+11/17/2017
+  - Added library support for the ATECC608A device
+  - Added support for Counter command
+  - atca_basic functions and tests now split into multiple files based on
+    command
+  - Added support for multiple base64 encoding rules
+  - Added support for JSON Web Tokens (jwt)
+  - Fixed atcab_write_enc() function to encrypt the data even when the device
+    is unlocked
+  - Fixed atcab_base64encode_() for the extra newline
+  - Updated atcab_ecdh_enc() to work more consistently
+
+07/01/2017
+  - Removed assumption of SN[0:1]=0123, SN[8]=EE. SN now needs to be passed in
+    for functions in atca_host and atca_basic functions will now read the
+    config zone for the SN if needed.
+  - Renamed atcab_gendig_host() to atcab_gendig() since it's not a host
+    function. Removed original atcab_gendig(), which had limited scope.
+  - Fixed atcah_hmac() for host side HMAC calculations. Added atcab_hmac().
+  - Removed unnecessary ATCADeviceType parameters from some atca_basic
+    functions.
+  - Added atcacert_create_csr() to create a signed CSR.
+  - New HAL implementation for Kit protocol over HID on Linux. Please see the
+    Incorporating CryptoAuthLib in a Linux project using USB HID devices
+    section in this file for more information.
+  - Added atcacert_write_cert() for writing certificates to the device.
+  - Added support for dynamic length certificate serial numbers in atcacert.
+  - Added atcab_write() for lower level write commands.
+  - Fixed atcah_write_auth_mac(), which had wrong OpCode.
+  - Added atcab_verify() command for lower level verify commands.
+  - Added atcab_verify_stored() for verifying data with a stored public key.
+  - Removed atcab_write_bytes_slot(). Use atcab_write_bytes_zone() instead.
+  - Modified atcab_write_bytes_zone() and atcab_read_bytes_zone() to specify a
+    slot
+  - Added atcab_verify_validate() and atcab_verify_invalidate()
+  - Improvements to host functions to handle more cases.
+  - Added atcab_updateextra(), atcab_derive_key()
+  - Added support for more certificate formats.
+  - Added general purpose hardware SHA256 functions. See atcab_hw_sha2_256().
+  - Removed device specific config read/write. Generic now handles both.
+  - Removed unnecessary response parameter from lock commands.
+  - Enhanced and added unit tests.
+  - Encrypted read and write functions now handle keys with SlotConfig.NoMac
+    set
+  - atcab_cmp_config_zone() handles all devices now.
+  - Fixed some edge cases in atcab_read_bytes_zone().
+  - Updated atSHA() to work with all devices.
+  - Fixed atcacert_get_device_locs() when using stored sn.
+  
+01/08/2016
+  - New HAL implementations for
+    - Single Wire interface for SAMD21 / SAMR21
+    - SAMV71 I2C HAL implementation
+    - XMega A3Bu HAL implementation
+  - Added atcab_version() method to return current version string of libary to
+    application
+  - New Bus and Discovery API 
+    - returns a list of ATCA device configurations for each CryptoAuth device
+      found
+    - currently implemented on SAMD21/R21 I2C, SAMV71
+    - additional discovery implementations to come
+  - TLS APIs solidified and documented
+  - Added missing doxygen documentation for some CryptoAuthLib methods 
+  - Stubs for HAL SPI removed as they are unused for SHA204A and ECC508A
+    support
+  - bug fixes
+  - updated atcab_sha() to accept a variable length message that is > 64 bytes
+    and not a multiple of 64 bytes (the SHA block size).
+  - refactored Cert I/O and Cert Data tests to be smaller
+  - 'uncrustify' source formatting
+  - published on GitHub
+
+9/19/2015
+  - Kit protocol over HID on Windows
+  - Kit protocol over CDC on Linux
+  - TLS integration with ATECC508A
+  - Certificate I/O and reconstruction 
+  - New SHA2 implementation
+  - Major update to API docs, Doxygen files found in cryptoauthlib/docs
+  - load cryptoauthlib/docs/index.html with your browser
+
+Release notes
+-----------
+03/04/2019
+  - mbed TLS wrapper added
+  - Minor bug fixes
+
+01/25/2019
+  - Python JWT support
+  - Python configuration structures added
+  - Restructure of secure boot app
+
+01/04/2019
+  - Added GCM functions
+  - Split AES modes into separate files
+  - Bug fix in SWI START driver
+
+10/25/2018
+  - Added basic certificate functions to the python wrapper.
+  - Added Espressif ESP32 I2C driver.
+  - Made generic Atmel START drivers to support most MCUs in START.
+  - Added AES-CTR mode functions.
+  - Python wrapper functions now return single values with AtcaReference.
+  - Added mutex support to HAL and better support for freeRTOS.
+  
+08/17/2018
+  - Better support for multiple kit protocol devices
+
+07/25/2018
+  - Clean up python wrapper
+
+07/18/2018
+  - Added ATCA_NO_HEAP define to remove use of malloc/free.
+  - Moved PEM functions to their own file in atcacert.
+  - Added wake retry to accomodate power on self test delay.
+  - Added ca_cert_def member to atcacert_def_s so cert chains can be traversed
+    as a linked list.
+
+03/29/2018
+  - Added support for response polling by default, which will make commands
+    return faster (define ATCA_NO_POLL to use old delay method).
+  - Removed atcatls related files as they were of limited value.
+  - Test framework generates a prompt before locking test configuration.
+  - Test framework puts device to sleep between tests.
+  - Fixed mode parameter issue in atcah_gen_key_msg().
+  - ATECC608A health test error code added.
+
+01/15/2018
+  - Added AES-128 CBC implementation using AES command
+  - Added AES-128 CMAC implementation using AES command
+  
+11/22/2017
+  - Added support for FLEXCOM6 on SAMG55 driver
+  
+11/17/2017
+  - Added library support for the ATECC608A device
+  - Added support for Counter command
+  - atca_basic functions and tests now split into multiple files based on
+    command
+  - Added support for multiple base64 encoding rules
+  - Added support for JSON Web Tokens (jwt)
+  - Fixed atcab_write_enc() function to encrypt the data even when the device
+    is unlocked
+  - Fixed atcab_base64encode_() for the extra newline
+  - Updated atcab_ecdh_enc() to work more consistently
+
+07/01/2017
+  - Removed assumption of SN[0:1]=0123, SN[8]=EE. SN now needs to be passed in
+    for functions in atca_host and atca_basic functions will now read the
+    config zone for the SN if needed.
+  - Renamed atcab_gendig_host() to atcab_gendig() since it's not a host
+    function. Removed original atcab_gendig(), which had limited scope.
+  - Fixed atcah_hmac() for host side HMAC calculations. Added atcab_hmac().
+  - Removed unnecessary ATCADeviceType parameters from some atca_basic
+    functions.
+  - Added atcacert_create_csr() to create a signed CSR.
+  - New HAL implementation for Kit protocol over HID on Linux. Please see the
+    Incorporating CryptoAuthLib in a Linux project using USB HID devices
+    section in this file for more information.
+  - Added atcacert_write_cert() for writing certificates to the device.
+  - Added support for dynamic length certificate serial numbers in atcacert.
+  - Added atcab_write() for lower level write commands.
+  - Fixed atcah_write_auth_mac(), which had wrong OpCode.
+  - Added atcab_verify() command for lower level verify commands.
+  - Added atcab_verify_stored() for verifying data with a stored public key.
+  - Removed atcab_write_bytes_slot(). Use atcab_write_bytes_zone() instead.
+  - Modified atcab_write_bytes_zone() and atcab_read_bytes_zone() to specify a
+    slot
+  - Added atcab_verify_validate() and atcab_verify_invalidate()
+  - Improvements to host functions to handle more cases.
+  - Added atcab_updateextra(), atcab_derive_key()
+  - Added support for more certificate formats.
+  - Added general purpose hardware SHA256 functions. See atcab_hw_sha2_256().
+  - Removed device specific config read/write. Generic now handles both.
+  - Removed unnecessary response parameter from lock commands.
+  - Enhanced and added unit tests.
+  - Encrypted read and write functions now handle keys with SlotConfig.NoMac
+    set
+  - atcab_cmp_config_zone() handles all devices now.
+  - Fixed some edge cases in atcab_read_bytes_zone().
+  - Updated atSHA() to work with all devices.
+  - Fixed atcacert_get_device_locs() when using stored sn.
+  
+01/08/2016
+  - New HAL implementations for
+    - Single Wire interface for SAMD21 / SAMR21
+    - SAMV71 I2C HAL implementation
+    - XMega A3Bu HAL implementation
+  - Added atcab_version() method to return current version string of libary to
+    application
+  - New Bus and Discovery API 
+    - returns a list of ATCA device configurations for each CryptoAuth device
+      found
+    - currently implemented on SAMD21/R21 I2C, SAMV71
+    - additional discovery implementations to come
+  - TLS APIs solidified and documented
+  - Added missing doxygen documentation for some CryptoAuthLib methods 
+  - Stubs for HAL SPI removed as they are unused for SHA204A and ECC508A
+    support
+  - bug fixes
+  - updated atcab_sha() to accept a variable length message that is > 64 bytes
+    and not a multiple of 64 bytes (the SHA block size).
+  - refactored Cert I/O and Cert Data tests to be smaller
+  - 'uncrustify' source formatting
+  - published on GitHub
+
+9/19/2015
+  - Kit protocol over HID on Windows
+  - Kit protocol over CDC on Linux
+  - TLS integration with ATECC508A
+  - Certificate I/O and reconstruction 
+  - New SHA2 implementation
+  - Major update to API docs, Doxygen files found in cryptoauthlib/docs
+  - load cryptoauthlib/docs/index.html with your browser
+
+Release notes
+-----------
+03/04/2019
+  - mbed TLS wrapper added
+  - Minor bug fixes
+
+01/25/2019
+  - Python JWT support
+  - Python configuration structures added
+  - Restructure of secure boot app
+
+01/04/2019
+  - Added GCM functions
+  - Split AES modes into separate files
+  - Bug fix in SWI START driver
+
+10/25/2018
+  - Added basic certificate functions to the python wrapper.
+  - Added Espressif ESP32 I2C driver.
+  - Made generic Atmel START drivers to support most MCUs in START.
+  - Added AES-CTR mode functions.
+  - Python wrapper functions now return single values with AtcaReference.
+  - Added mutex support to HAL and better support for freeRTOS.
+  
+08/17/2018
+  - Better support for multiple kit protocol devices
+
+07/25/2018
+  - Clean up python wrapper
+
+07/18/2018
+  - Added ATCA_NO_HEAP define to remove use of malloc/free.
+  - Moved PEM functions to their own file in atcacert.
+  - Added wake retry to accomodate power on self test delay.
+  - Added ca_cert_def member to atcacert_def_s so cert chains can be traversed
+    as a linked list.
+
+03/29/2018
+  - Added support for response polling by default, which will make commands
+    return faster (define ATCA_NO_POLL to use old delay method).
+  - Removed atcatls related files as they were of limited value.
+  - Test framework generates a prompt before locking test configuration.
+  - Test framework puts device to sleep between tests.
+  - Fixed mode parameter issue in atcah_gen_key_msg().
+  - ATECC608A health test error code added.
+
+01/15/2018
+  - Added AES-128 CBC implementation using AES command
+  - Added AES-128 CMAC implementation using AES command
+  
+11/22/2017
+  - Added support for FLEXCOM6 on SAMG55 driver
+  
+11/17/2017
+  - Added library support for the ATECC608A device
+  - Added support for Counter command
+  - atca_basic functions and tests now split into multiple files based on
+    command
+  - Added support for multiple base64 encoding rules
+  - Added support for JSON Web Tokens (jwt)
+  - Fixed atcab_write_enc() function to encrypt the data even when the device
+    is unlocked
+  - Fixed atcab_base64encode_() for the extra newline
+  - Updated atcab_ecdh_enc() to work more consistently
+
+07/01/2017
+  - Removed assumption of SN[0:1]=0123, SN[8]=EE. SN now needs to be passed in
+    for functions in atca_host and atca_basic functions will now read the
+    config zone for the SN if needed.
+  - Renamed atcab_gendig_host() to atcab_gendig() since it's not a host
+    function. Removed original atcab_gendig(), which had limited scope.
+  - Fixed atcah_hmac() for host side HMAC calculations. Added atcab_hmac().
+  - Removed unnecessary ATCADeviceType parameters from some atca_basic
+    functions.
+  - Added atcacert_create_csr() to create a signed CSR.
+  - New HAL implementation for Kit protocol over HID on Linux. Please see the
+    Incorporating CryptoAuthLib in a Linux project using USB HID devices
+    section in this file for more information.
+  - Added atcacert_write_cert() for writing certificates to the device.
+  - Added support for dynamic length certificate serial numbers in atcacert.
+  - Added atcab_write() for lower level write commands.
+  - Fixed atcah_write_auth_mac(), which had wrong OpCode.
+  - Added atcab_verify() command for lower level verify commands.
+  - Added atcab_verify_stored() for verifying data with a stored public key.
+  - Removed atcab_write_bytes_slot(). Use atcab_write_bytes_zone() instead.
+  - Modified atcab_write_bytes_zone() and atcab_read_bytes_zone() to specify a
+    slot
+  - Added atcab_verify_validate() and atcab_verify_invalidate()
+  - Improvements to host functions to handle more cases.
+  - Added atcab_updateextra(), atcab_derive_key()
+  - Added support for more certificate formats.
+  - Added general purpose hardware SHA256 functions. See atcab_hw_sha2_256().
+  - Removed device specific config read/write. Generic now handles both.
+  - Removed unnecessary response parameter from lock commands.
+  - Enhanced and added unit tests.
+  - Encrypted read and write functions now handle keys with SlotConfig.NoMac
+    set
+  - atcab_cmp_config_zone() handles all devices now.
+  - Fixed some edge cases in atcab_read_bytes_zone().
+  - Updated atSHA() to work with all devices.
+  - Fixed atcacert_get_device_locs() when using stored sn.
+  
+01/08/2016
+  - New HAL implementations for
+    - Single Wire interface for SAMD21 / SAMR21
+    - SAMV71 I2C HAL implementation
+    - XMega A3Bu HAL implementation
+  - Added atcab_version() method to return current version string of libary to
+    application
+  - New Bus and Discovery API 
+    - returns a list of ATCA device configurations for each CryptoAuth device
+      found
+    - currently implemented on SAMD21/R21 I2C, SAMV71
+    - additional discovery implementations to come
+  - TLS APIs solidified and documented
+  - Added missing doxygen documentation for some CryptoAuthLib methods 
+  - Stubs for HAL SPI removed as they are unused for SHA204A and ECC508A
+    support
+  - bug fixes
+  - updated atcab_sha() to accept a variable length message that is > 64 bytes
+    and not a multiple of 64 bytes (the SHA block size).
+  - refactored Cert I/O and Cert Data tests to be smaller
+  - 'uncrustify' source formatting
+  - published on GitHub
+
+9/19/2015
+  - Kit protocol over HID on Windows
+  - Kit protocol over CDC on Linux
+  - TLS integration with ATECC508A
+  - Certificate I/O and reconstruction 
+  - New SHA2 implementation
+  - Major update to API docs, Doxygen files found in cryptoauthlib/docs
+  - load cryptoauthlib/docs/index.html with your browser
+
+Release notes
+-----------
+03/04/2019
+  - mbed TLS wrapper added
+  - Minor bug fixes
+
+01/25/2019
+  - Python JWT support
+  - Python configuration structures added
+  - Restructure of secure boot app
+
+01/04/2019
+  - Added GCM functions
+  - Split AES modes into separate files
+  - Bug fix in SWI START driver
+
+10/25/2018
+  - Added basic certificate functions to the python wrapper.
+  - Added Espressif ESP32 I2C driver.
+  - Made generic Atmel START drivers to support most MCUs in START.
+  - Added AES-CTR mode functions.
+  - Python wrapper functions now return single values with AtcaReference.
+  - Added mutex support to HAL and better support for freeRTOS.
+  
+08/17/2018
+  - Better support for multiple kit protocol devices
+
+07/25/2018
+  - Clean up python wrapper
+
+07/18/2018
+  - Added ATCA_NO_HEAP define to remove use of malloc/free.
+  - Moved PEM functions to their own file in atcacert.
+  - Added wake retry to accomodate power on self test delay.
+  - Added ca_cert_def member to atcacert_def_s so cert chains can be traversed
+    as a linked list.
+
+03/29/2018
+  - Added support for response polling by default, which will make commands
+    return faster (define ATCA_NO_POLL to use old delay method).
+  - Removed atcatls related files as they were of limited value.
+  - Test framework generates a prompt before locking test configuration.
+  - Test framework puts device to sleep between tests.
+  - Fixed mode parameter issue in atcah_gen_key_msg().
+  - ATECC608A health test error code added.
+
+01/15/2018
+  - Added AES-128 CBC implementation using AES command
+  - Added AES-128 CMAC implementation using AES command
+  
+11/22/2017
+  - Added support for FLEXCOM6 on SAMG55 driver
+  
+11/17/2017
+  - Added library support for the ATECC608A device
+  - Added support for Counter command
+  - atca_basic functions and tests now split into multiple files based on
+    command
+  - Added support for multiple base64 encoding rules
+  - Added support for JSON Web Tokens (jwt)
+  - Fixed atcab_write_enc() function to encrypt the data even when the device
+    is unlocked
+  - Fixed atcab_base64encode_() for the extra newline
+  - Updated atcab_ecdh_enc() to work more consistently
+
+07/01/2017
+  - Removed assumption of SN[0:1]=0123, SN[8]=EE. SN now needs to be passed in
+    for functions in atca_host and atca_basic functions will now read the
+    config zone for the SN if needed.
+  - Renamed atcab_gendig_host() to atcab_gendig() since it's not a host
+    function. Removed original atcab_gendig(), which had limited scope.
+  - Fixed atcah_hmac() for host side HMAC calculations. Added atcab_hmac().
+  - Removed unnecessary ATCADeviceType parameters from some atca_basic
+    functions.
+  - Added atcacert_create_csr() to create a signed CSR.
+  - New HAL implementation for Kit protocol over HID on Linux. Please see the
+    Incorporating CryptoAuthLib in a Linux project using USB HID devices
+    section in this file for more information.
+  - Added atcacert_write_cert() for writing certificates to the device.
+  - Added support for dynamic length certificate serial numbers in atcacert.
+  - Added atcab_write() for lower level write commands.
+  - Fixed atcah_write_auth_mac(), which had wrong OpCode.
+  - Added atcab_verify() command for lower level verify commands.
+  - Added atcab_verify_stored() for verifying data with a stored public key.
+  - Removed atcab_write_bytes_slot(). Use atcab_write_bytes_zone() instead.
+  - Modified atcab_write_bytes_zone() and atcab_read_bytes_zone() to specify a
+    slot
+  - Added atcab_verify_validate() and atcab_verify_invalidate()
+  - Improvements to host functions to handle more cases.
+  - Added atcab_updateextra(), atcab_derive_key()
+  - Added support for more certificate formats.
+  - Added general purpose hardware SHA256 functions. See atcab_hw_sha2_256().
+  - Removed device specific config read/write. Generic now handles both.
+  - Removed unnecessary response parameter from lock commands.
+  - Enhanced and added unit tests.
+  - Encrypted read and write functions now handle keys with SlotConfig.NoMac
+    set
+  - atcab_cmp_config_zone() handles all devices now.
+  - Fixed some edge cases in atcab_read_bytes_zone().
+  - Updated atSHA() to work with all devices.
+  - Fixed atcacert_get_device_locs() when using stored sn.
+  
+01/08/2016
+  - New HAL implementations for
+    - Single Wire interface for SAMD21 / SAMR21
+    - SAMV71 I2C HAL implementation
+    - XMega A3Bu HAL implementation
+  - Added atcab_version() method to return current version string of libary to
+    application
+  - New Bus and Discovery API 
+    - returns a list of ATCA device configurations for each CryptoAuth device
+      found
+    - currently implemented on SAMD21/R21 I2C, SAMV71
+    - additional discovery implementations to come
+  - TLS APIs solidified and documented
+  - Added missing doxygen documentation for some CryptoAuthLib methods 
+  - Stubs for HAL SPI removed as they are unused for SHA204A and ECC508A
+    support
+  - bug fixes
+  - updated atcab_sha() to accept a variable length message that is > 64 bytes
+    and not a multiple of 64 bytes (the SHA block size).
+  - refactored Cert I/O and Cert Data tests to be smaller
+  - 'uncrustify' source formatting
+  - published on GitHub
+
+9/19/2015
+  - Kit protocol over HID on Windows
+  - Kit protocol over CDC on Linux
+  - TLS integration with ATECC508A
+  - Certificate I/O and reconstruction 
+  - New SHA2 implementation
+  - Major update to API docs, Doxygen files found in cryptoauthlib/docs
+  - load cryptoauthlib/docs/index.html with your browser
+
+Release notes
+-----------
+03/04/2019
+  - mbed TLS wrapper added
+  - Minor bug fixes
+
+01/25/2019
+  - Python JWT support
+  - Python configuration structures added
+  - Restructure of secure boot app
+
+01/04/2019
+  - Added GCM functions
+  - Split AES modes into separate files
+  - Bug fix in SWI START driver
+
+10/25/2018
+  - Added basic certificate functions to the python wrapper.
+  - Added Espressif ESP32 I2C driver.
+  - Made generic Atmel START drivers to support most MCUs in START.
+  - Added AES-CTR mode functions.
+  - Python wrapper functions now return single values with AtcaReference.
+  - Added mutex support to HAL and better support for freeRTOS.
+  
+08/17/2018
+  - Better support for multiple kit protocol devices
+
+07/25/2018
+  - Clean up python wrapper
+
+07/18/2018
+  - Added ATCA_NO_HEAP define to remove use of malloc/free.
+  - Moved PEM functions to their own file in atcacert.
+  - Added wake retry to accomodate power on self test delay.
+  - Added ca_cert_def member to atcacert_def_s so cert chains can be traversed
+    as a linked list.
+
+03/29/2018
+  - Added support for response polling by default, which will make commands
+    return faster (define ATCA_NO_POLL to use old delay method).
+  - Removed atcatls related files as they were of limited value.
+  - Test framework generates a prompt before locking test configuration.
+  - Test framework puts device to sleep between tests.
+  - Fixed mode parameter issue in atcah_gen_key_msg().
+  - ATECC608A health test error code added.
+
+01/15/2018
+  - Added AES-128 CBC implementation using AES command
+  - Added AES-128 CMAC implementation using AES command
+  
+11/22/2017
+  - Added support for FLEXCOM6 on SAMG55 driver
+  
+11/17/2017
+  - Added library support for the ATECC608A device
+  - Added support for Counter command
+  - atca_basic functions and tests now split into multiple files based on
+    command
+  - Added support for multiple base64 encoding rules
+  - Added support for JSON Web Tokens (jwt)
+  - Fixed atcab_write_enc() function to encrypt the data even when the device
+    is unlocked
+  - Fixed atcab_base64encode_() for the extra newline
+  - Updated atcab_ecdh_enc() to work more consistently
+
+07/01/2017
+  - Removed assumption of SN[0:1]=0123, SN[8]=EE. SN now needs to be passed in
+    for functions in atca_host and atca_basic functions will now read the
+    config zone for the SN if needed.
+  - Renamed atcab_gendig_host() to atcab_gendig() since it's not a host
+    function. Removed original atcab_gendig(), which had limited scope.
+  - Fixed atcah_hmac() for host side HMAC calculations. Added atcab_hmac().
+  - Removed unnecessary ATCADeviceType parameters from some atca_basic
+    functions.
+  - Added atcacert_create_csr() to create a signed CSR.
+  - New HAL implementation for Kit protocol over HID on Linux. Please see the
+    Incorporating CryptoAuthLib in a Linux project using USB HID devices
+    section in this file for more information.
+  - Added atcacert_write_cert() for writing certificates to the device.
+  - Added support for dynamic length certificate serial numbers in atcacert.
+  - Added atcab_write() for lower level write commands.
+  - Fixed atcah_write_auth_mac(), which had wrong OpCode.
+  - Added atcab_verify() command for lower level verify commands.
+  - Added atcab_verify_stored() for verifying data with a stored public key.
+  - Removed atcab_write_bytes_slot(). Use atcab_write_bytes_zone() instead.
+  - Modified atcab_write_bytes_zone() and atcab_read_bytes_zone() to specify a
+    slot
+  - Added atcab_verify_validate() and atcab_verify_invalidate()
+  - Improvements to host functions to handle more cases.
+  - Added atcab_updateextra(), atcab_derive_key()
+  - Added support for more certificate formats.
+  - Added general purpose hardware SHA256 functions. See atcab_hw_sha2_256().
+  - Removed device specific config read/write. Generic now handles both.
+  - Removed unnecessary response parameter from lock commands.
+  - Enhanced and added unit tests.
+  - Encrypted read and write functions now handle keys with SlotConfig.NoMac
+    set
+  - atcab_cmp_config_zone() handles all devices now.
+  - Fixed some edge cases in atcab_read_bytes_zone().
+  - Updated atSHA() to work with all devices.
+  - Fixed atcacert_get_device_locs() when using stored sn.
+  
+01/08/2016
+  - New HAL implementations for
+    - Single Wire interface for SAMD21 / SAMR21
+    - SAMV71 I2C HAL implementation
+    - XMega A3Bu HAL implementation
+  - Added atcab_version() method to return current version string of libary to
+    application
+  - New Bus and Discovery API 
+    - returns a list of ATCA device configurations for each CryptoAuth device
+      found
+    - currently implemented on SAMD21/R21 I2C, SAMV71
+    - additional discovery implementations to come
+  - TLS APIs solidified and documented
+  - Added missing doxygen documentation for some CryptoAuthLib methods 
+  - Stubs for HAL SPI removed as they are unused for SHA204A and ECC508A
+    support
+  - bug fixes
+  - updated atcab_sha() to accept a variable length message that is > 64 bytes
+    and not a multiple of 64 bytes (the SHA block size).
+  - refactored Cert I/O and Cert Data tests to be smaller
+  - 'uncrustify' source formatting
+  - published on GitHub
+
+9/19/2015
+  - Kit protocol over HID on Windows
+  - Kit protocol over CDC on Linux
+  - TLS integration with ATECC508A
+  - Certificate I/O and reconstruction 
+  - New SHA2 implementation
+  - Major update to API docs, Doxygen files found in cryptoauthlib/docs
+  - load cryptoauthlib/docs/index.html with your browser
+
+Release notes
+-----------
+03/04/2019
+  - mbed TLS wrapper added
+  - Minor bug fixes
+
+01/25/2019
+  - Python JWT support
+  - Python configuration structures added
+  - Restructure of secure boot app
+
+01/04/2019
+  - Added GCM functions
+  - Split AES modes into separate files
+  - Bug fix in SWI START driver
+
+10/25/2018
+  - Added basic certificate functions to the python wrapper.
+  - Added Espressif ESP32 I2C driver.
+  - Made generic Atmel START drivers to support most MCUs in START.
+  - Added AES-CTR mode functions.
+  - Python wrapper functions now return single values with AtcaReference.
+  - Added mutex support to HAL and better support for freeRTOS.
+  
+08/17/2018
+  - Better support for multiple kit protocol devices
+
+07/25/2018
+  - Clean up python wrapper
+
+07/18/2018
+  - Added ATCA_NO_HEAP define to remove use of malloc/free.
+  - Moved PEM functions to their own file in atcacert.
+  - Added wake retry to accomodate power on self test delay.
+  - Added ca_cert_def member to atcacert_def_s so cert chains can be traversed
+    as a linked list.
+
+03/29/2018
+  - Added support for response polling by default, which will make commands
+    return faster (define ATCA_NO_POLL to use old delay method).
+  - Removed atcatls related files as they were of limited value.
+  - Test framework generates a prompt before locking test configuration.
+  - Test framework puts device to sleep between tests.
+  - Fixed mode parameter issue in atcah_gen_key_msg().
+  - ATECC608A health test error code added.
+
+01/15/2018
+  - Added AES-128 CBC implementation using AES command
+  - Added AES-128 CMAC implementation using AES command
+  
+11/22/2017
+  - Added support for FLEXCOM6 on SAMG55 driver
+  
+11/17/2017
+  - Added library support for the ATECC608A device
+  - Added support for Counter command
+  - atca_basic functions and tests now split into multiple files based on
+    command
+  - Added support for multiple base64 encoding rules
+  - Added support for JSON Web Tokens (jwt)
+  - Fixed atcab_write_enc() function to encrypt the data even when the device
+    is unlocked
+  - Fixed atcab_base64encode_() for the extra newline
+  - Updated atcab_ecdh_enc() to work more consistently
+
+07/01/2017
+  - Removed assumption of SN[0:1]=0123, SN[8]=EE. SN now needs to be passed in
+    for functions in atca_host and atca_basic functions will now read the
+    config zone for the SN if needed.
+  - Renamed atcab_gendig_host() to atcab_gendig() since it's not a host
+    function. Removed original atcab_gendig(), which had limited scope.
+  - Fixed atcah_hmac() for host side HMAC calculations. Added atcab_hmac().
+  - Removed unnecessary ATCADeviceType parameters from some atca_basic
+    functions.
+  - Added atcacert_create_csr() to create a signed CSR.
+  - New HAL implementation for Kit protocol over HID on Linux. Please see the
+    Incorporating CryptoAuthLib in a Linux project using USB HID devices
+    section in this file for more information.
+  - Added atcacert_write_cert() for writing certificates to the device.
+  - Added support for dynamic length certificate serial numbers in atcacert.
+  - Added atcab_write() for lower level write commands.
+  - Fixed atcah_write_auth_mac(), which had wrong OpCode.
+  - Added atcab_verify() command for lower level verify commands.
+  - Added atcab_verify_stored() for verifying data with a stored public key.
+  - Removed atcab_write_bytes_slot(). Use atcab_write_bytes_zone() instead.
+  - Modified atcab_write_bytes_zone() and atcab_read_bytes_zone() to specify a
+    slot
+  - Added atcab_verify_validate() and atcab_verify_invalidate()
+  - Improvements to host functions to handle more cases.
+  - Added atcab_updateextra(), atcab_derive_key()
+  - Added support for more certificate formats.
+  - Added general purpose hardware SHA256 functions. See atcab_hw_sha2_256().
+  - Removed device specific config read/write. Generic now handles both.
+  - Removed unnecessary response parameter from lock commands.
+  - Enhanced and added unit tests.
+  - Encrypted read and write functions now handle keys with SlotConfig.NoMac
+    set
+  - atcab_cmp_config_zone() handles all devices now.
+  - Fixed some edge cases in atcab_read_bytes_zone().
+  - Updated atSHA() to work with all devices.
+  - Fixed atcacert_get_device_locs() when using stored sn.
+  
+01/08/2016
+  - New HAL implementations for
+    - Single Wire interface for SAMD21 / SAMR21
+    - SAMV71 I2C HAL implementation
+    - XMega A3Bu HAL implementation
+  - Added atcab_version() method to return current version string of libary to
+    application
+  - New Bus and Discovery API 
+    - returns a list of ATCA device configurations for each CryptoAuth device
+      found
+    - currently implemented on SAMD21/R21 I2C, SAMV71
+    - additional discovery implementations to come
+  - TLS APIs solidified and documented
+  - Added missing doxygen documentation for some CryptoAuthLib methods 
+  - Stubs for HAL SPI removed as they are unused for SHA204A and ECC508A
+    support
+  - bug fixes
+  - updated atcab_sha() to accept a variable length message that is > 64 bytes
+    and not a multiple of 64 bytes (the SHA block size).
+  - refactored Cert I/O and Cert Data tests to be smaller
+  - 'uncrustify' source formatting
+  - published on GitHub
+
+9/19/2015
+  - Kit protocol over HID on Windows
+  - Kit protocol over CDC on Linux
+  - TLS integration with ATECC508A
+  - Certificate I/O and reconstruction 
+  - New SHA2 implementation
+  - Major update to API docs, Doxygen files found in cryptoauthlib/docs
+  - load cryptoauthlib/docs/index.html with your browser
+
diff --git a/python/cryptoauthlib/library.py b/python/cryptoauthlib/library.py
index 0b408f4..59f1413 100644
--- a/python/cryptoauthlib/library.py
+++ b/python/cryptoauthlib/library.py
@@ -22,6 +22,7 @@ Cryptoauthlib Library Management
 # THIS SOFTWARE.
 
 import os.path
+import glob
 import ctypes
 from .exceptions import LibraryLoadError
 
@@ -78,8 +79,8 @@ def load_cryptoauthlib(lib=None):
         curr_path = os.path.abspath(os.path.dirname(__file__))
         if os.path.exists(os.path.join(curr_path, "cryptoauth.dll")):
             _CRYPTO_LIB = ctypes.cdll.LoadLibrary(os.path.join(curr_path, "cryptoauth.dll"))
-        elif os.path.exists(os.path.join(curr_path, "libcryptoauth.so")):
-            _CRYPTO_LIB = ctypes.cdll.LoadLibrary(os.path.join(curr_path, "libcryptoauth.so"))
+        elif glob.glob(curr_path + "/libcryptoauth*.so"):
+            _CRYPTO_LIB = ctypes.cdll.LoadLibrary(glob.glob(curr_path + "/libcryptoauth*.so")[0])
         elif os.path.exists(os.path.join(curr_path, "libcryptoauth.dylib")):
             _CRYPTO_LIB = ctypes.cdll.LoadLibrary(os.path.join(curr_path, "libcryptoauth.dylib"))
         else:
diff --git a/python/debian/changelog b/python/debian/changelog
new file mode 100644
index 0000000..f16dc5d
--- /dev/null
+++ b/python/debian/changelog
@@ -0,0 +1,5 @@
+cryptoauthlib (20190304-1) unstable; urgency=low
+
+  * source package automatically created by stdeb 0.8.5
+
+ -- Microchip Technology Inc <support@microchip.com>  Wed, 24 Apr 2019 15:33:50 -0700
diff --git a/python/debian/compat b/python/debian/compat
new file mode 100644
index 0000000..7f8f011
--- /dev/null
+++ b/python/debian/compat
@@ -0,0 +1 @@
+7
diff --git a/python/debian/control b/python/debian/control
new file mode 100644
index 0000000..48091c0
--- /dev/null
+++ b/python/debian/control
@@ -0,0 +1,36 @@
+Source: cryptoauthlib
+Maintainer: Microchip Technology Inc <support@microchip.com>
+Section: python
+Priority: optional
+Build-Depends: python3-setuptools, python3-all-dev, debhelper (>= 7)
+Standards-Version: 3.9.1
+
+
+
+
+
+Package: python3-cryptoauthlib
+Architecture: any
+Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
+Description: Python Wrapper Library for Microchip Security Products
+ # Python CryptoAuthLib module
+ .
+ ## Introduction
+ This module provides a thin python ctypes layer to evaluate the cryptoauthlib
+ interface to Microchip CryptoAuthentication devices.
+ .
+ ### Code Examples
+ Code examples for python are available on github as part of
+ [CryptoAuthTools](https://github.com/MicrochipTech/cryptoauthtools)
+ under the [python/examples](https://github.com/MicrochipTech/cryptoauthtools/tree/master/python/examples)
+ directory
+ .
+ .
+ ## Installation
+ ### CryptoAuthLib python module can be installed through Python's pip tool:
+ ```
+     pip install cryptoauthlib
+ ```
+ .
+ ### To upgrade your installation when new releases are made:
+
diff --git a/python/debian/python3-cryptoauthlib.debhelper.log b/python/debian/python3-cryptoauthlib.debhelper.log
new file mode 100644
index 0000000..b0b7d32
--- /dev/null
+++ b/python/debian/python3-cryptoauthlib.debhelper.log
@@ -0,0 +1 @@
+dh_update_autotools_config
diff --git a/python/debian/rules b/python/debian/rules
new file mode 100755
index 0000000..bfb6456
--- /dev/null
+++ b/python/debian/rules
@@ -0,0 +1,31 @@
+#!/usr/bin/make -f
+
+# This file was automatically generated by stdeb 0.8.5 at
+# Wed, 24 Apr 2019 15:33:50 -0700
+
+%:
+	dh $@ --with python3 --buildsystem=python_distutils
+
+
+override_dh_auto_clean:
+	python3 setup.py clean -a
+	find . -name \*.pyc -exec rm {} \;
+
+
+
+override_dh_auto_build:
+	python3 setup.py build --force
+
+
+
+override_dh_auto_install:
+	python3 setup.py install --force --root=debian/python3-cryptoauthlib --no-compile -O0 --install-layout=deb  
+
+
+
+override_dh_python2:
+	dh_python2 --no-guessing-versions
+
+
+
+
diff --git a/python/debian/source/format b/python/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/python/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/python/debian/source/options b/python/debian/source/options
new file mode 100644
index 0000000..bcc4bbb
--- /dev/null
+++ b/python/debian/source/options
@@ -0,0 +1 @@
+extend-diff-ignore="\.egg-info$"
\ No newline at end of file
