Releases: mheese/rust-pkcs11
Releases · mheese/rust-pkcs11
v0.5.0
Big thanks to all the contributors! Here is a list of high-level changes:
- thanks to @hug-dev - adding additional check to
CK_ATTRIBUTE
getters to prevent wrong usage afterget_attribute_value
has been called - this changes the method signatures of all getters to return aResult
- thanks to @woodruffw - adding string accessors which make working with slot info and token info more natural without breaking the C representation
- moved from Travis CI to GitHub actions
- added Windows builds to CI pipeline
- added code coverage with tarpaulin to Codecov and made it part of CI pipeline
- added RustSec audit check to CI pipeline
- changed
CK_ULONG
(andCK_LONG
respectively) tou64
: it wasusize
before which might be correct for length values, however, it is also used at other places and simply does not correctly represent PKCS#11 - this will become a Cargo feature in the future to allow choosing betweenu32
andu64
as well as packed structs (this is currently the default on Windows only, but could potentially be required on any platform) - completed integration tests on all PKCS#11 functions - not all functions are implemented in SoftHSM and some tests will start to panic once they become available
- changed
wait_for_slot_event
signature to return anOption(CK_SLOT_ID)
inside of theResult
: when this function is called withCKF_DONT_BLOCK
it can return withCKR_NO_EVENT
which is not an error, but just denotes no event. To keep it in the spirit of the rest of the implementation: non-zero return values that are not errors will always be handled. - removed custom
rustfmt.toml
and addedcargo fmt
andcargo clippy
checks to CI pipelines to enforce good coding standards - removed PKCS#11 docs from the repo and pointed to a repo which contains all PKCS#11 standards as a full collection
NOTE: this release has breaking API changes:
CK_ATTRIBUTE
getters now returnResult
(see above for details)CK_LONG
andCK_ULONG
are nowi64
oru64
respectively (see above for details)wait_for_slot_event
function returns anOption(CK_SLOT_ID)
inside of theResult
(see above for details)
NOTE: with the v0.6.0 release this library will switch to Rust 2018.
v0.4.2
Big thanks to all the contributors! Here is a list of high-level changes:
- thanks to @palfrey - fixing build errors with modern rust and in tests
- thanks to @palfrey - adding Travis CI configuration for Linux and macOS tests
- thanks to @witchof0x20 - Refactoring some
&Vec<T>
to&[T]
types without breaking compatibility - thanks to @hanzx-1 - Fix problem with decrypt_update
- refactored some parts to use linter recommendations for better code quality
v0.4.1
v0.4.0
Big thanks to all the contributors! Here is a list of high-level changes:
- thanks to @mathstuf - path to module is now a proper
&Path
- thanks to @mathstuf - in the tests the path to the pkcs11 module can now be configured
- thanks to @thequux - errors now implement
std::error::Error
- thanks to @mozkeeler - mut-ify PKCS#11 API to be consistent with C
v0.3.1
v0.3.0
In summary:
- big step forward to implementing the low-level library (only tests missing)
- bug fixes from various people
In detail:
- Implemented Key Management functions
- Implemented Encryption/Decryption functions (TODO: tests still missing)
- Implemented Message Digest functions (TODO: tests still missing)
- Implemented Signing and MACing (TODO: tests still missing)
- Implemented Verifying of signatures and MACs (TODO: tests still missing)
- Implemented Dual-function cryptographic operations (TODO: tests still missing)
- Implemented Legacy PKCS#11 functions
- Fixed Windows x64 compatibility (thanks to @mon)
- Fixed bug on Unix platforms after Windowz x64 compatiblity was achieved (thanks to @mon )
- Fixed bug with sign() function (thanks to @ptescher )
- Added login_with_raw() function for certain PIN entry edge cases with some devices - e.g. Safenet iKey 2032 (thanks again to @mon )