- [#373] Add managed and unmanaged file encrypt/decrypt, which internally stream the bytes for constant memory usage. Note the security disclaimer on file decrypt if you intend to use these APIs.
- [#372] Hotfix serialized public key cache so that offline initialization works. This fix does require cache regeneration.
- #365
- Expand unmanaged API coverage.
- Adds public key caching to all APIs that can make use of it.
- Support offline encryption when using unmanaged + public key caching initialization.
- [#339]
- Update to Rust 2024 edition.
- [#340]
- Update papaya to 0.2.0.
- [#355]
- Bump MSRV to 1.88.0.
- Update criterion to 0.7.
- [#361]
- Update to jsonwebtoken 10.
- Update reqwest to 0.13.
- Switch from
ringtoaws-lc-rsfor AES. - Change
HashonJwt(jsonwebtoken'sHeaderno longer implementsHash).
- [#335]
- Switch from
dashmaptopapayafor policy caching.
- Switch from
- [#327]
- Reuse the reqwest
Clientfor all calls. This increases performance significantly if making multiple calls with the same IronOxide. - Change
DeviceContexttoBlockingDeviceContextfor the blocking api. This allows the reuse of the runtime for all calls.
- Reuse the reqwest
- [#321]
- Bump MSRV to 1.75.0.
- Upgrade dependencies. This includes an update to
itertools, which is part of the public API. - Re-export
itertools::EitherOrBoth. Updates toitertoolswill not automatically be considered breaking changes going forward.
- [#284] Remove
devas an option forIRONCORE_ENV. - [#300] Bump MSRV to 1.67.0.
- [#308] Use policy caching in unmanaged encryption.
- [#309] Bump MSRV to 1.70.0.
- [#272] Fix regression that removed
HashfromJwt.
- [#270] Add
idto the UserCreateResult and UserUpdateResult.
- [#267] Add
user_change_password
- [#246] Don't clone plaintext on AES encryption
- Public APIs for
document_encrypt,document_encrypt_unmanaged, anddocument_update_bytesnow take owned bytes instead of byte slices to improve performance for common use cases. - AES encryption has improved memory usage in most cases.
- Public APIs for
- [#249] Remove
chronotypes in public API and replace with equivalenttimetypes - [#248]
- Bump MSRV to 1.56.0
- Update to recrypt 0.13
- Update to rand 0.8
- Update to rand_chacha 0.3
- Update to ironcore-search-helpers 0.2
- Update to jsonwebtoken 8
- [#222] Loosen version requirements for dependencies.
- [#225] Fix bug causing requests with empty policies to fail.
- [#232] Remove dependency on publicsuffix.
- [#216] Fix compatibility with serde 1.0.119
- [#209] Update to itertools 0.10.0
- [#211] Update to dashmap 4.0.1
- [#213]
- Update to tokio 1.0
- Update to reqwest 0.11.0
- Update to bytes 1.0
- Require minimum protobuf of 2.20.0
- [#215]
- Update to recrypt 0.12.0
- Bump MSRV to 1.41.1
- Fix compatibility with serde 1.0.119
- Locked to protobuf 2.17.0 (relaxed in later releases)
- [#183]
- Update to rust-protobuf 2.17
- [#193]
- Relax rust-protobuf dependency requirement. This should allow downstream consumers more freedom in what rust-protobuf version they are using.
- [#196]
- Add group encrypt benchmarks
- Various non-breaking dependency updates
- [#170]
- Update
JwtClaimsstruct to handle "http://ironcore/" namespace prefix on private claims - Add optional
uidclaim that is added by Auth0 - Change type of
pidandkidfields in claims fromusizetou32
- Update
- [#177]
- Add explicit
type_length_limitbecause as of Rust 1.46.0, the default wasn't sufficient - Update dependencies
- Add explicit
- [#164] [#168]
- Add
Jwtstruct that validates JWT algorithm and payload form - Add
JwtClaimsstruct to help form a validJwtpayload - Change
user_create,user_verify, andgenerate_new_deviceto use newJwtstruct
- Add
- [#142]
- Significant changes to organization of structs
- Add
ironoxide::commonmodule to hold structs that span modules - Add all structs and traits to
ironoxide::prelude - Move
DeviceId,DeviceName,DeviceAddResult, andKeyPairtoironoxide::usermodule - Move
DocumentIdandDocumentNametoironoxide::documentmodule
- Add
- Significant changes to organization of structs
- [#148]
- Add serde support for
EncryptedBlindSearchIndex - Expose
transliterate_stringfunction
- Add serde support for
- [#155]
- Upgrade dependencies
- [#156]
protomodule is no longerpubas it is only used internally
- [#139] [#152]
[#154] [#158]
- Improve documentation throughout crate
- [#138]
- Remove
publicsuffixdefault features (openssl-sys)
- Remove
- [#129]
- Improve error message for SDK initialization failure
- [#132]
- Add feature flags to enable alternative TLS linking and implementations
- [#126]
- Upgrade dependencies (
rand,rand_chacha,recrypt)
- Upgrade dependencies (
- [#118]
- Introduce
searchmodule with ability to create blind indexes. (behind beta flag)
- Introduce
- [#119]
- Add
Clone,Debug,Eq,Hash, andPartialEqto almost all public structs. - Upgrade to itertools 0.9.0
- Add
- [#123]
- Add better error message for missing policy
- [#120]
- Add
clear_policy_cache()toBlockingIronOxide.
- Add
- [#114]
- Adds timeouts to all public API methods. Most timeouts use a top-level config set in IronOxideConfig. Some special cases allow for passing an optional timeout directly (rotate_all, user_create, user_verify, generate_new_device). Timeouts apply to both IronOxide and BlockingIronOxide
- Configs can now be set on BlockingIronOxide. Before, defaults were always used.
- Trying out an "open" struct for all config objects to allow for easier construction and access
- Adds dependency on tokio/rt-threaded feature flag
- [#112]
- Make the default API async
- Add feature flag
blockingto enable the sync API
- [#111]
- Adds simple policy caching
- [#108]
- Fix bug to allow decryption of 0 and 1 byte documents
- [#98]
- Removes
device_idfrom RequestAuth and DeviceContext::new()
- Removes
- [#94]
- Adds rotate_all() to
PrivateKeyRotationCheckResult - Adds id() to
GroupUpdatePrivateKeyResult
- Adds rotate_all() to
- [#91]
- Adds simple sharing of tokio runtime across device authenticated SDK calls
- [#90]
- Adds method GroupOps::group_rotate_private_key
- [#81][#80][#77]
- internal group api to async/await syntax
- internal document api to async/await syntax
- internal user api to async/await syntax
- Tokio 0.2.0-alpha.2 upgrade
- [#76]
- Allows adding admins at group creation time.
- Allows specifying an owner at group creation time.
- [#72]
- Allows adding members at group creation time.
- [#69]
- Allows changing of IronCore environment at runtime.
- [#64]
- Adds need_rotation to
GroupCreateOpts, allowing a group to be created with its private key marked for rotation.
- Adds need_rotation to
- [#59]
- Adds method UserOps::user_rotate_private_key
- Adds a new initialization option: ironoxide::initialize_check_rotation to enable users to know if any of their private keys need rotation.
- Renames
user::UserVerifyResult->user::UserResult
- [#56]
- Added
needs_rotationas anOption<bool>toGroupMetaResult,GroupGetResult,GroupBasicApiResponse, andGroupGetApiResponse.
- Added
- [#52]
- Added
device_idas a parameter toDeviceContext::new, renamed other parameters. - Changed Serialization/Deserialization of
DeviceContext.
- Added
- Added
TryFrom<&[u8]>forPublicKey UserCreateKeyPairhas been renamed toUserCreateResult- [#35]
- Clarified documentation for several struct parameters.
- [#43]
- Users can now be created with a
needs_rotationflag set.
- Users can now be created with a
- [#47]
UserVerifyResultnow containsneeds_rotationfor the user.
- [#32]
- DocumentAdvancedOps::document_decrypt_unmanaged function added for advanced use cases. This decrypt operation is the inverse of DocumentAdvancedOps::document_encrypt_unmanaged
- [#27]
- DocumentAdvancedOps::document_encrypt_unmanaged function added for advanced use cases where the calling application wants to manage both the encrypted data and the associated edeks instead of using the IronCore service for EDEK management.
- [#23]
- IronOxide no longer has mutable references in its API, making it possible to share an IronOxide between threads.
- The RNG used for AES now periodically reseeds itself.
- Added the ability to encrypt via policy.
- Added the ability to encrypt without granting to the author.
- [#1]
- added
UserCreateKeyPairto public API - added
IronOxideErrto theprelude - added
From<IronOxideErr> for Stringto lib.rs
- added
- Initial Open Source Release