oqs 3.0.2
oqs: ^3.0.2 copied to clipboard
Dart FFI bindings for liboqs — high-performance post-quantum cryptography (PQC) with ML-KEM, ML-DSA, Falcon, SPHINCS+ for key encapsulation and signatures.
3.0.2 #
Changed #
- Improved analyzer hygiene for better package quality scoring.
- Added
analysis_options.yamland excluded generated FFI bindings from analyzer noise. - Updated examples to use non-deprecated loader configuration (
LibOQSLoader.customPaths+LibraryPaths). - Cleaned minor lint issues in examples/tests.
Fixed #
dart analyzenow reports no issues in the package source/test/example set.
3.0.1 #
Changed #
- Expanded
README.mdinto a practical loading guide forliboqsintegration. - Documented exact dynamic library loading strategy precedence used by
LibOQSLoader. - Added platform-specific auto-path selection details (including Android ABI and iOS static linking behavior).
- Added cache behavior and debugging workflow for resolving load failures consistently.
3.0.0 #
Breaking Changes #
- Migrated runtime behavior and tests to
liboqs0.15.0bindings. - Removed reliance on hard-coded algorithm lists for public API discovery paths.
- Updated behavior assumptions for algorithm availability and key/signature sizes; these are now resolved from the loaded
liboqsbuild at runtime.
Changed #
- Switched KEM operations to stable top-level
liboqscalls:OQS_KEM_keypair_derandOQS_KEM_keypairOQS_KEM_encapsOQS_KEM_decaps
- Switched signature operations to stable top-level
liboqscalls:OQS_SIG_keypairOQS_SIG_signOQS_SIG_verify
LibOQS.getSupportedKEMAlgorithms()andLibOQS.getSupportedSignatureAlgorithms()now rely on runtime enumeration fromliboqs.
Fixed #
- Resolved FFI instability from direct struct function-pointer invocation by using exported function entry points.
- Updated tests to avoid brittle
0.14.xassumptions (fixed algorithm names/sizes) and use capability-based selection.
Migration Notes #
- Ensure native library version is
liboqs >= 0.15.0. - If your app assumes specific algorithm names (e.g. only
Kyber*/Dilithium*), move to runtime checks with:LibOQS.getSupportedKEMAlgorithms()LibOQS.getSupportedSignatureAlgorithms()
- Avoid hard-coding key/signature lengths; read them from the created
KEM/Signatureinstance.
2.4.0 #
Added #
- Per-platform library path configuration via
LibraryPathsclass LibraryPaths.fromBinaryRoot()factory for binary release integrationLibraryPaths.fromExtractedArchives()factory for separate platform archivesbinaryRootparameter toloadLibrary()for extracted release directories- iOS XCFramework support with
DynamicLibrary.process()static linking - Android ABI auto-detection from
Platform.version - Better error messages showing all attempted loading strategies
Changed #
- Improved library loading with more fallback strategies
- Enhanced
PackageRelativeStrategyto check binary release structure - Updated iOS loading to use static linking instead of dynamic library
Deprecated #
LibOQSLoader.customPath- useLibOQSLoader.customPathsinstead
Fixed #
- iOS library loading (was incorrectly trying to load
.dylib) - Android loading efficiency with ABI detection
- Memory safety in pointer operations with chunk-based copying