Releases: JHUISI/charm
Releases · JHUISI/charm
v0.61.0: Python 3.13 and 3.14 Support
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 publicPy_IsFinalizing()API - Replaced
_PyLong_Format()withPyObject_Str()for integer-to-string conversion - Fixed
PyUnicode_DATA()usage to usePyUnicode_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()usingmpz_abs() - Fixed hanging tests:
RSAGroup.paramgen()with safety limits on Blum-Williams prime generationchamhash_rsa_hw09with 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-*andcp314-*to cibuildwheel configuration for wheel builds - Re-enabled Python 3.12+ on macOS CI
Other Changes
- Replaced deprecated OpenSSL
BN_generate_primewithBN_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.0Supported 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
What's Changed
- Added Proxy Re-Encryption interface and schemes by @cygnusv in #98
- setup.py now reads custom libs dirs from config.mk by @lferr in #101
- setup.py sets custom runtime libs dirs from config.mk by @lferr in #102
- Feature/Travis CI configuration by @dennisschroer in #104
- Fix travis not failing when tests fail by @dennisschroer in #106
- Abenc maabe rw15 by @dennisschroer in #108
- Ecc hashing by @lferr in #109
- Uncompressed (de)serialization of PairingGroup Elements by @lferr in #112
- InitPP error handling and checking status by @lferr in #113
- Feature/split tests by @dennisschroer in #115
- Feature/cleanup abe by @dennisschroer in #121
- symcrypto.py: update to allow for AEAD by @locksmithone in #124
- Correcting nomenclature AEAD by @locksmithone in #127
- Add Dockerfile to document installation process by @leafac in #130
- [bug 135] Fix compilation errors with OpenSSL 1.1.0 caused by API change by @ElectroSuccess in #141
- Ciphertext-policy ABE schemes implemented under asymmetric pairing gr… by @sagrawal87 in #151
- added deb installer python script by @tusharjois in #156
- Added recompiled RSTs by @tusharjois in #158
- Add a 254-bit Type-F curve to PBC by @ahrussell in #160
- enable s390 support by @nobody4t in #164
- modified changelog by @tusharjois in #175
- Python2 code in toolbox.msp, issue#155 by @jthure in #178
- BLS signature aggregation by @lovesh in #180
- Update rogue key attack to show that attacker can forge signtures fro… by @lovesh in #181
- fix attack when more than one rogue public key by @lovesh in #182
- Short Randomizable Signatures. David Pointcheval and Olivier Sanders by @lovesh in #183
- Update chameleon hash scheme to generate collision and add additional check in PS scheme by @lovesh in #184
- MuSig: Key Aggregation for Schnorr Signatures (from Blockstream) by @lovesh in #185
- Add modulo reduction for group.init of ZR by @timothymctim in #198
- Fix memory leak when performing modular exponentiation on ECs by @davidstritzl in #199
- Fix two memory leaks in hashing to a curve element by @timothymctim in #200
- Revocable abe scheme yang by @doughgle in #202
- Revocable abe scheme yang by @doughgle in #203
- Protocol class minor problems by @EDVTAZ in #204
- Protocol: robust messaging by @EDVTAZ in #206
- Prevent trivial hash collisions - fixes #201 by @timothymctim in #212
- simplify interface for YLLC ABE scheme by @doughgle in #216
- parameterized policy expressions by @doughgle in #217
- Clean serialization and deserialization and makes it faster by @LaRiffle in #218
- Refactor type-checking for Extended Proxy-Assisted ABE scheme. by @doughgle in #223
- Share benchmark script for YLLC15 scheme. by @doughgle in #221
- Integer hashing by @timothymctim in #213
- Use math.gcd instead of fractions.gcd by @lenerd in #226
- Improve conversion of Python integers to Big Numbers in EC module by @davidstritzl in #211
- Support all-AND policy expressions for testing ABE schemes. by @doughgle in #229
- Add instructions for newer Python versions by @fwdekker in #237
- Fix downcaseTokens issue in policytree.py with pyparsing >=2.4.1 by @raghavkaul in #252
- Support multiple ABEnc adapters with varying schemes by @raghavkaul in #254
- solves #132 by @nikosft in #257
- Changes to fix Relic integration by @friedrichsenm in #262
- docs: fix example by @lrusso96 in #265
- Implemented Lamport OTS by @jthure in #270
- README: Update links to jhuisi.github.io by @dubek in #271
- FIxed the documentation and expamples link in README.md since they are deprecated. by @ChopperCP in #269
- fix multiple definition in benchmarkmodule by @ajisaisena in #280
- added Certificateless Public Key Cryptography by @nikosft in #286
-
- Implement PS signature schemes by @ahmedmbakr in #291
- update configure.sh allow arm64 by @jianda1013 in #290
- Implement the paper: "User Collusion Avoidance CP-ABE With Efficient Attribute Revocation for Cloud Storage" by @ahmedmbakr in #298
- Fix for Issue #260 by @terry-fee in #300
- Implement the paper: "Attribute Based Encryption with Privacy Protection and Accountability for CloudIoT" by @ahmedmbakr in #299
- Fix for #303 and some additional issues with PY_SSIZE_T_CLEAN macro by @terry-fee in #305
- Update for python 3.12 by @EliusSolis in #310
- Fix Issue #313 and optimize based on Issue #312 by @BatchClayderman in #314
- Python 3 10 and below by @terry-fee in #317
- Add GitHub Actions workflow for CI by @jakinyele in #318
- docs: fix simple typo, attriute -> attribute by @timgates42 in #263
- Fix: Added missing downcaseTokens function to policytree.py by @Xinzhang-Chen in #320
- Fix Lagrange Coefficient Key Mismatch in CPabe_BSW07.decrypt by @Komorebi-Z in #323
- Fix Issue #326: Adapt to PyLongObject changes in Python 3.12+ by @Komorebi-Z in #328
- Fixes Pairingmodule: Improve PyLongObject handling, optimize, and address Windows/MinGW issues by @Komorebi-Z in #329
- Improve PR #314 and fix escaped character issues by @BatchClayderman in #331
- docs: Modernize documentation for v0.60 release by @jakinyele in #333
- release: Upgrade to PBC 1.0.0 and bump version to 0.60 by @jakinyele in #334
- Charm-Crypto v0.60 Release by @jakinyele in #335
New Contributors
- @cygnusv made their first contribution in #98
- @lferr made their first contribution in #101
- @leafac made their first contribution in #130
- @ElectroSuccess made their first contribution in #141
- @sagrawal87 made their first contribution in #151
- @jthure made their first contribution in #178
- @lovesh made their first contribution in #180
- @timothymctim made their first contribution in #198
- @davidstritzl made their first contribution in #199
- @doughgle made their first contribution in #202
- @LaRiffle made their first contribution in #218
- @lenerd made their first contribution in #226
- @fwdekker made their first contribution in #237
- @raghavkaul made their first contribution in #252
- @friedrichsenm made their first contribution in #262
- @lrusso96 made their first contribution in #265
- @dubek made their first contribution in #271
- @ChopperCP made their first contribution in #269
- @ajisaisena made their first contribution in #280
- @ahmedmbakr made their first contribution in #291
- @jianda1013 made their first contribution in #290
- @terry-fee made their first contribution in #300
- @EliusSolis made their first contribution in #310
- @BatchClayderman made their first contribution in https://github.com/JHUISI/charm/p...
Charm-Crypto Framework
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