v0.61 release (Python 3.13 and 3.14 support)
--------------------------------------------
- Full Python 3.13 compatibility with fixes for removed private APIs:
  - Replaced _Py_IsFinalizing() with public Py_IsFinalizing() API
  - Replaced _PyLong_Format() with PyObject_Str() for integer-to-string conversion
  - Fixed PyUnicode_DATA() usage to use PyUnicode_AsUTF8() for null-terminated strings
- Added Python 3.14 support to CI/CD pipelines (Linux, macOS, Windows)
- Fixed Python 3.12+ integer conversion bug in integermodule.c:
  - Updated macros to handle new PyLongObject internal structure (lv_tag)
  - Fixed negative number handling in mpzToLongObj() using mpz_abs()
- Fixed hanging tests on Python 3.12+:
  - RSAGroup.paramgen() with safety limits on Blum-Williams prime generation
  - chamhash_rsa_hw09 with deterministic coprime search
  - Rabin signature test skipped on Python 3.12+ due to randomPrime() issues
- Replaced deprecated OpenSSL functions:
  - BN_generate_prime -> BN_generate_prime_ex
- Added comprehensive integer arithmetic test suite
- Added Docker-based testing environment for Python 3.12+ debugging
- Updated cibuildwheel configuration to build wheels for Python 3.13 and 3.14

v0.60 release (Python 3.8+ and OpenSSL 3.x compatibility)
---------------------------------------------------------
- Updated to require Python 3.8+ (dropped Python 2.x support)
- Full OpenSSL 3.x compatibility across all C extension modules
- Added PY_SSIZE_T_CLEAN macro to all C modules for Python 3.10+ compatibility
- Fixed PyLongObject internal structure changes for Python 3.12+
- Modernized CTR counter module (_counter.c) to use Python 3 Bytes API
- Updated MIRACL pairing module to use EVP API instead of deprecated OpenSSL functions
- Modern Python packaging with pyproject.toml (PEP 517/518)
- Added GitHub Actions CI/CD workflow for automated testing
- Added type stubs (.pyi files) for C extension modules
- Upgraded to PBC library 1.0.0
- Fixed segmentation faults in EC and pairing modules
- Added new cryptographic scheme implementations and documentation
- Removed deprecated platform.linux_distribution() usage
- Removed obsolete distribute_setup.py
- Updated configure.sh to detect Python 3.8-3.12
- Various bug fixes and improvements

v0.50 beta release (major release with many changes)
-------------------------------------------
- error handling updates to base modules
- CL03: length of e is now verified, verifyCommit() and header added
- SHA1(m_i) for doctest (verifyCommit) added
- added implementation of private aggregate of time series data by Marc Joye et al.
- added Abe's blind signature scheme [AO00, A01]
- updated to install file for windows and nsis script.
- fixed typo in protocol_a00.py and protocol_ao00.py
- added hibenc_lew11.py
- added Goldwasser-Micali pkenc scheme
- added Leontiadis-Elkhyiaoui-Molva scheme
- added four more ABE schemes
- re-added Time-based proxy re-encryption scheme implementation for py3
- added non-monotonic CP-ABE scheme by Yamada, Attrapadung, Hanaoka, Kunihiro
- update libtomcrypt headers to v1.17
- fix configure.sh: detect python better. thanks to Neal H. Walfield
- fix decrypt error when plaintext=0 for Paillier scheme. Closes #97
- added BBS98 proxy re-encryption scheme
- added omplementation of AFGH06 scheme
- interface for Proxy Re-Encryption schemes (charm.toolbox.PREnc)
- adapted BBS98 to PREnc interface
- added first NAL16 scheme
- added NAL16b (CCA_21 version of NAL16a)
- added scheme from Rouselakis and Waters (maabe_rw12.py)
- added hash support to wrapped pbc ecc elements (pairingmodule.c)
- added support for uncompressed curves elements (de)serialization.
- improved arguments management in (de)serialize methods of the c pairingmodule.
- improved error management in deserialize c pairingmodule
- improved error management in pairing product routine of pairinggroup.c
- improved error handling for initialize and initPP, new preproc attribute.
- changed hash function from sha1 to sha256 everywhere appropriate
- simplified encode/decode of messages in ECGroups. Squashed some bugs related to BN_bin2bn/BN_bn2bin
- updated configure.sh to support ARM (android, raspberry pi, include armv7l support)
- renamed sha1 to sha2 and update version to v0.5
- added py2.7 compatibility for pairing group serialize/deserialize
- added Dockerfile to document installation process
- fixed compilation errors with OpenSSL 1.1.0 caused by API change
- ciphertext-policy ABE schemes implemented under asymmetric pairing groups. Any policy represented as a monotone span program can be handled.
- added support for Mac OS X 10.11+
- added documentation
- scheme contributions, bug fixes and/or various improvements from @adelapie, @leontiad, @nikosft, @0xwille, @artjomb, @cygnusv, @lferr, @denniss17, @locksmithone, @leafac, @ElectroSuccess, @sagrawal87. Thanks to all!

v0.43 beta release (infrastructure changes) 
-------------------------------------------
- simplified benchmarking interface -- breaks compatibility and see docs
- added new schemes (some external contributions from Nikos Fotiou, Fan Zhang, Hoeteck Wee)
- added pre-computation optimization for group exponentiation in pairing-based modules -- see docs 
- fixed several memory leaks and segmentation faults
- switched from SHA1 to SHA2 for hashing operations
- improved serialization -- now using JSON instead of Pickle (security vulnerability)
- significant improvements to all base modules -- several fixes to integer and ecmodule functions
- more robust Android build for Charm
- significant fixes to 2.7 version of Charm

v0.42 beta release (infrastructure changes)
-------------------------------------------
- Several bug fixes to base modules (mem leaks, interface issues): pairing (PBC & Miracl), ecc, and integer
- Added new base module for RELIC and fixed bugs for MIRACL (Note: unified abstract interface for base modules coming in v0.43)
- Refactored charm package structure. This affects schemes, toolbox, adapters, etc.
- setup.py now creates Python egg
- Integrated pytest to replace unit testing framework
- Added doctests to all Charm schemes
- Updated documentation 

v0.4 beta release
-----------------
- Several bug fixes to base modules: pairing (PBC & Miracl), ecc, and integer
- Major changes to base module API. Recommend using the group abstraction wrappers: PairingGroup, ECGroup, and IntegerGroup
- Removed pairing curve params in favor of a unified 'toolbox/pairingcurve.py' with curve identifiers (e.g., SS512, MNT224, etc)
- Deleted the 'params' dir (See previous bullet)
- Added high-level serialization API to simplify managing ciphertexts and keys in applications
- Added PKCS #7 padding to toolbox
- Added public key encryption schemes: 2 new IBE schemes (ibenc_ckrs09, ibenc_lsw08)
- Added signature schemes: CL04 (anony. creds)
- Added verifiable random function (VRF) scheme
- Updates to KPABE scheme with new adapter
- Improved protocol engine: automatically store data transmitted between parties and more flexibility in state transition map  
- Updated CNS07 scheme 
- Name updates to authenticated crypto abstraction
- Updated documentation for generating group parameters and using our serialization interface
