Skip to content

Releases: mheese/rust-pkcs11

v0.5.0

20 Apr 05:58
v0.5.0
a9935e0
Compare
Choose a tag to compare

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 after get_attribute_value has been called - this changes the method signatures of all getters to return a Result
  • 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 (and CK_LONG respectively) to u64: it was usize 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 between u32 and u64 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 an Option(CK_SLOT_ID) inside of the Result: when this function is called with CKF_DONT_BLOCK it can return with CKR_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 added cargo fmt and cargo 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 return Result (see above for details)
  • CK_LONG and CK_ULONG are now i64 or u64 respectively (see above for details)
  • wait_for_slot_event function returns an Option(CK_SLOT_ID) inside of the Result (see above for details)

NOTE: with the v0.6.0 release this library will switch to Rust 2018.

v0.4.2

04 Apr 20:50
v0.4.2
7ac7ebf
Compare
Choose a tag to compare

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

04 Apr 20:43
v0.4.1
f7bc569
Compare
Choose a tag to compare

Big thanks to all the contributors! Here is a list of high-level changes:

  • thanks to @mathstuf - run softhsm-using tests in serial with each other
  • thanks to @glandium - Update libloading to 0.5
  • thanks to @emilio - Update num-bigint 0.2

v0.4.0

04 Apr 20:43
v0.4.0
5b08420
Compare
Choose a tag to compare

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

02 Nov 06:14
v0.3.1
639a34b
Compare
Choose a tag to compare

Bug fix for mismatched types on some platforms which was introduced in v0.3.0

v0.3.0

02 Nov 05:15
v0.3.0
da196b7
Compare
Choose a tag to compare

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 )

v0.2.0

12 Nov 00:19
v0.2.0
ff1970a
Compare
Choose a tag to compare
  • adds all object management functions
  • adds all converted C header file types