v0.2.5
Release v0.2.5: Repository Governance, OWASP Compliance, and PyO3 Fixes
🎯 Overview
This release enhances repository governance for public launch, adds comprehensive OWASP Password Storage compliance testing, and resolves PyO3 compatibility issues in the CI/CD pipeline.
Release Type: Minor version (backward compatible)
Status: Beta - Independent security audit pending
Python Support: 3.9, 3.10, 3.11, 3.12
✨ What's New
Repository Governance Automation
- GitHub CODEOWNERS - Automated review request routing for security-critical components
- Dependabot - Weekly dependency monitoring for Python packages and GitHub Actions
- Auto-labels PRs with 'dependencies', 'security', 'ci/cd'
- Groups minor/patch updates to reduce noise
- Targets
devbranch to maintain workflow integrity
OWASP Password Storage Compliance Testing
- 12 new compliance tests validating PBKDF2-HMAC-SHA256 implementation
- Tests verify:
- ✅ 480,000 iterations (55% above OWASP 2021 minimum)
- ✅ HMAC-SHA256 algorithm (OWASP recommended)
- ✅ 128-bit salt length (NIST SP 800-132)
- ✅ Salt randomness and uniqueness
- ✅ 256-bit output length
- ✅ Documentation accuracy (
CRYPTO_RATIONALE.md,THREAT_MODEL.md)
Enhanced Testing Documentation
- New comprehensive OWASP compliance testing section in
TESTING_GUIDE.md - PyO3 testing best practices guide (
docs/PYO3_TESTING_BEST_PRACTICES.md) - Updated test counts: 236 → 248 tests (+5% increase)
🐛 Bug Fixes
CI/CD Pipeline (PyO3 Compatibility)
- Fixed PyO3 reinitialization errors in OWASP compliance tests
- Split test suite into separate GitHub Actions jobs:
- Main test job: All tests except OWASP compliance
- Isolated OWASP job: Prevents cross-module PyO3 conflicts
- Both jobs run on Python 3.9-3.12 matrix
- Long-term fix planned for v0.3.0 (comprehensive test refactoring)
Documentation Accuracy
- Corrected PBKDF2 iteration count in
CRYPTO_RATIONALE.mdandTHREAT_MODEL.md- Documentation previously claimed 600,000 iterations (aspirational)
- Actual implementation: 480,000 iterations (since v0.1.5)
- No code changes - documentation-only correction
- Fixed release script CHANGELOG duplication bug
- Script now checks if version exists before inserting
- Re-running no longer creates duplicate headers
📊 Test Suite Summary
Total Tests: 248 (+12 from v0.2.4)
Results: 245 passed, 3 skipped
Coverage: 95.7% overall (100% on security-critical code)
Execution Time: ~12 seconds
Test Categories:
- Compliance: 18 tests (W3C DID, RFC 7515/7519)
- Core: 37 tests (Identity, DID resolution, JWK/PEM)
- Fuzzing: 32 tests (Attack scenarios, DoS prevention)
- Integration: 5 tests (Authlib interoperability)
- JWS: 63 tests (Token creation, verification, TTL)
- Keystore: 49 tests (Memory, Env, File backends)
- OWASP Compliance: 12 tests ⭐ NEW
- Security: 32 tests (Error sanitization, input validation)
🔒 Security Enhancements
OWASP Compliance Status
- Current: 480,000 PBKDF2 iterations
- OWASP 2021 Minimum: 310,000 iterations ✅ Exceeds by 55%
- OWASP 2023 Recommendation: 600,000 iterations (~80% compliant)
- v1.0.0 Upgrade Plan: Increase to 600,000 with backward compatibility
Enhanced Security Documentation
- Updated
.github/SECURITY.mdwith password requirements section - Strong password guidance (20+ characters mandatory)
- GPU crack time analysis for various password strengths
- Documented upgrade path to full OWASP 2023 compliance
Supply Chain Security
- Dependabot reduces dependency attack surface
- Automated weekly vulnerability scanning
- CI/CD security-scan job validates all dependencies
📝 Documentation Updates
New Documentation
docs/PYO3_TESTING_BEST_PRACTICES.md- Comprehensive PyO3 testing guide (272 lines).github/CODEOWNERS- Code ownership definitions.github/dependabot.yml- Dependency monitoring configuration
Updated Documentation
docs/TESTING_GUIDE.md- Added OWASP compliance section, updated test counts.github/SECURITY.md- Added password requirements and compliance statusREADME.md- Updated test coverage table to v0.2.5docs/CRYPTO_RATIONALE.md- Corrected iteration count (600k → 480k)docs/THREAT_MODEL.md- Corrected iteration count (600k → 480k)
Removed Documentation
docs/SETUP_LOCAL.md- Moved to internal docs (package now on PyPI)
🔧 Breaking Changes
None. This release is fully backward compatible with v0.2.4.
📦 Installation
pip install --upgrade didliteVerify installation:
import didlite
print(didlite.__version__) # Should print: 0.2.5🔗 Resources
- Documentation: README.md
- Testing Guide: docs/TESTING_GUIDE.md
- Security Policy: .github/SECURITY.md
- Changelog: CHANGELOG.md
- PyPI Package: https://pypi.org/project/didlite/
🙏 Acknowledgments
Special thanks to the OWASP Foundation for the Password Storage Cheat Sheet guidance and to the Python cryptography community for PyO3 compatibility best practices.
⚠️ Beta Status Reminder
This library has not undergone an independent security audit. While comprehensive internal security hardening has been completed with 23+ documented security fixes, we recommend against production use until an external audit is complete.
Use at your own risk. Report vulnerabilities to: security@didlite.io
🚀 What's Next
v0.3.0 Preview:
- Comprehensive test refactoring (module-scoped fixtures for all FileKeyStore tests)
- Enhanced fuzzing coverage
- Performance benchmarks update
- Preparation for v1.0.0 security audit
See docs/FUTURE_UPGRADES.md for the full roadmap.
🤖 Generated with Claude Code