Skip to content

Releases: JHUISI/charm

v0.61.0: Python 3.13 and 3.14 Support

02 Feb 08:11

Choose a tag to compare

Highlights

  • Full Python 3.13 compatibility with fixes for removed private APIs
  • Python 3.14 support added to CI/CD pipelines (Linux, macOS, Windows)
  • Fixed Python 3.12+ integer conversion bugs in C extension modules
  • Fixed hanging tests on Python 3.12+

Python 3.13 Fixes

  • 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

Python 3.12+ Fixes

  • Fixed integer conversion bug in integermodule.c (PyLongObject internal structure changed in Python 3.12)
  • Fixed negative number handling in mpzToLongObj() using mpz_abs()
  • Fixed hanging tests:
    • 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

CI/CD Updates

  • Added Python 3.14 to all CI matrices (Linux, macOS, Windows)
  • Added cp313-* and cp314-* to cibuildwheel configuration for wheel builds
  • Re-enabled Python 3.12+ on macOS CI

Other Changes

  • Replaced deprecated OpenSSL BN_generate_prime with BN_generate_prime_ex
  • Added comprehensive integer arithmetic test suite
  • Added Docker-based testing environment for Python 3.12+ debugging
  • Updated README with supported Python versions table

Installation

pip install charm-crypto-framework==0.61.0

Supported Python Versions

Python Linux macOS Windows
3.8 - -
3.9
3.10
3.11
3.12
3.13
3.14

Full Changelog

See CHANGELOG for complete details.

Charm-Crypto v0.60

25 Jan 09:38

Choose a tag to compare

What's Changed

New Contributors

Read more

Charm-Crypto Framework

01 Aug 19:21

Choose a tag to compare

Pre-release

v0.43 beta release

  • simplified benchmarking interface -- breaks compatibility and see docs
  • added new schemes (external contributions from Nikos Fotiou, Fan Zhang, Hoeteck Wee)
  • added pre-computation 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 & ecmodule funcs
  • more robust Android build for Charm
  • significant fixes to 2.7 version of Charm