|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to the SchemaPin project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [1.1.0] - 2025-01-07 |
| 9 | + |
| 10 | +### Added |
| 11 | + |
| 12 | +#### Phase 1: Key Revocation System |
| 13 | +- **Schema Version 1.1**: Enhanced `.well-known/schemapin.json` format with `revoked_keys` array |
| 14 | +- **Key Revocation Support**: Automatic checking of revoked keys during verification |
| 15 | +- **Backward Compatibility**: Full support for schema v1.0 endpoints |
| 16 | +- **Revocation Validation**: Comprehensive validation of revoked key entries |
| 17 | + |
| 18 | +#### Phase 2: Interactive Key Pinning |
| 19 | +- **Interactive Pinning**: User prompts for key pinning decisions with detailed information |
| 20 | +- **Domain Policies**: Configurable policies for automatic vs. interactive pinning |
| 21 | +- **Enhanced UX**: Rich terminal output with colored status indicators and clear prompts |
| 22 | +- **Key Management**: Advanced key pinning with metadata and policy enforcement |
| 23 | + |
| 24 | +#### Phase 3: CLI Tools |
| 25 | +- **schemapin-keygen**: Complete key generation tool with ECDSA/RSA support |
| 26 | +- **schemapin-sign**: Schema signing tool with batch processing and metadata |
| 27 | +- **schemapin-verify**: Verification tool with interactive pinning and discovery |
| 28 | +- **Comprehensive Options**: Full CLI interface with extensive configuration options |
| 29 | + |
| 30 | +#### Phase 4: Integration Demo and Production Server |
| 31 | +- **Integration Demo**: Complete cross-language compatibility demonstration |
| 32 | +- **Production Server**: Docker-ready `.well-known` endpoint server |
| 33 | +- **Real-world Examples**: Practical usage scenarios and deployment guides |
| 34 | +- **Cross-language Testing**: Validation of Python/JavaScript interoperability |
| 35 | + |
| 36 | +#### Phase 5: Package Management and Distribution |
| 37 | +- **Python Package**: Complete PyPI-ready package with modern packaging standards |
| 38 | +- **JavaScript Package**: npm-ready package with comprehensive metadata |
| 39 | +- **Build Scripts**: Automated building and testing infrastructure |
| 40 | +- **Distribution Tools**: Publishing workflows and validation scripts |
| 41 | + |
| 42 | +### Enhanced |
| 43 | + |
| 44 | +#### Core Functionality |
| 45 | +- **ECDSA P-256 Signatures**: Industry-standard cryptographic verification |
| 46 | +- **Schema Canonicalization**: Deterministic JSON serialization for consistent hashing |
| 47 | +- **Trust-On-First-Use (TOFU)**: Secure key pinning with user control |
| 48 | +- **Public Key Discovery**: RFC 8615 compliant `.well-known` endpoint discovery |
| 49 | + |
| 50 | +#### Security Features |
| 51 | +- **Key Revocation**: Comprehensive revocation checking and validation |
| 52 | +- **Signature Verification**: Robust cryptographic signature validation |
| 53 | +- **Key Pinning Storage**: Secure local storage of pinned keys with metadata |
| 54 | +- **Domain Validation**: Proper domain-based key association and verification |
| 55 | + |
| 56 | +#### Developer Experience |
| 57 | +- **High-level APIs**: Simple workflows for both developers and clients |
| 58 | +- **Comprehensive Testing**: Full test suites with security validation |
| 59 | +- **Rich Documentation**: Complete API documentation and usage examples |
| 60 | +- **Cross-platform Support**: Works on Linux, macOS, and Windows |
| 61 | + |
| 62 | +#### Package Quality |
| 63 | +- **Modern Packaging**: Uses pyproject.toml and latest npm standards |
| 64 | +- **Comprehensive Metadata**: Rich package information for discoverability |
| 65 | +- **Development Tools**: Integrated linting, testing, and quality checks |
| 66 | +- **Security Compliance**: Bandit security scanning and vulnerability checks |
| 67 | + |
| 68 | +### Technical Specifications |
| 69 | + |
| 70 | +#### Cryptographic Standards |
| 71 | +- **Signature Algorithm**: ECDSA with P-256 curve (secp256r1) |
| 72 | +- **Hash Algorithm**: SHA-256 for schema integrity |
| 73 | +- **Key Format**: PEM encoding for interoperability |
| 74 | +- **Signature Format**: Base64 encoding for transport |
| 75 | + |
| 76 | +#### Protocol Compliance |
| 77 | +- **RFC 8615**: `.well-known` URI specification compliance |
| 78 | +- **JSON Schema**: Structured schema validation and canonicalization |
| 79 | +- **HTTP Standards**: Proper HTTP headers and status codes |
| 80 | +- **Cross-language**: Full Python and JavaScript compatibility |
| 81 | + |
| 82 | +#### Package Standards |
| 83 | +- **Python**: PEP 517/518 compliant with pyproject.toml |
| 84 | +- **JavaScript**: Modern ES modules with comprehensive exports |
| 85 | +- **Semantic Versioning**: Proper version management and compatibility |
| 86 | +- **License Compliance**: MIT license with proper attribution |
| 87 | + |
| 88 | +### Dependencies |
| 89 | + |
| 90 | +#### Python Requirements |
| 91 | +- `cryptography>=41.0.0` - ECDSA cryptographic operations |
| 92 | +- `requests>=2.31.0` - HTTP client for key discovery |
| 93 | +- Python 3.8+ support with type hints |
| 94 | + |
| 95 | +#### JavaScript Requirements |
| 96 | +- Node.js 18.0.0+ - Modern JavaScript runtime |
| 97 | +- Zero external dependencies - Uses built-in crypto module |
| 98 | +- ES modules with proper exports configuration |
| 99 | + |
| 100 | +### Breaking Changes |
| 101 | +- None - Full backward compatibility maintained |
| 102 | + |
| 103 | +### Security Notes |
| 104 | +- All cryptographic operations use industry-standard algorithms |
| 105 | +- Key revocation checking prevents use of compromised keys |
| 106 | +- Interactive pinning provides user control over trust decisions |
| 107 | +- Secure storage of pinned keys with proper metadata |
| 108 | + |
| 109 | +### Migration Guide |
| 110 | +- Existing v1.0 implementations continue to work without changes |
| 111 | +- New features are opt-in and backward compatible |
| 112 | +- CLI tools provide migration assistance for existing workflows |
| 113 | + |
| 114 | +## [1.0.0] - 2024-12-01 |
| 115 | + |
| 116 | +### Added |
| 117 | +- Initial release of SchemaPin protocol |
| 118 | +- Basic ECDSA P-256 signature verification |
| 119 | +- Simple key pinning mechanism |
| 120 | +- Python and JavaScript reference implementations |
| 121 | +- Core cryptographic operations and schema canonicalization |
| 122 | + |
| 123 | +--- |
| 124 | + |
| 125 | +For more details on any release, see the [GitHub releases page](https://github.com/thirdkey/schemapin/releases). |
0 commit comments