- [#327]
- Reuse the reqwest
Client
for all calls. This increases performance significantly if making multiple calls with the same IronOxide. - Change
DeviceContext
toBlockingDeviceContext
for 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 toitertools
will not automatically be considered breaking changes going forward.
- [#284] Remove
dev
as 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
Hash
fromJwt
.
- [#270] Add
id
to 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_bytes
now 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
chrono
types in public API and replace with equivalenttime
types - [#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
JwtClaims
struct to handle "http://ironcore/" namespace prefix on private claims - Add optional
uid
claim that is added by Auth0 - Change type of
pid
andkid
fields in claims fromusize
tou32
- Update
- [#177]
- Add explicit
type_length_limit
because as of Rust 1.46.0, the default wasn't sufficient - Update dependencies
- Add explicit
- [#164] [#168]
- Add
Jwt
struct that validates JWT algorithm and payload form - Add
JwtClaims
struct to help form a validJwt
payload - Change
user_create
,user_verify
, andgenerate_new_device
to use newJwt
struct
- Add
- [#142]
- Significant changes to organization of structs
- Add
ironoxide::common
module to hold structs that span modules - Add all structs and traits to
ironoxide::prelude
- Move
DeviceId
,DeviceName
,DeviceAddResult
, andKeyPair
toironoxide::user
module - Move
DocumentId
andDocumentName
toironoxide::document
module
- Add
- Significant changes to organization of structs
- [#148]
- Add serde support for
EncryptedBlindSearchIndex
- Expose
transliterate_string
function
- Add serde support for
- [#155]
- Upgrade dependencies
- [#156]
proto
module is no longerpub
as it is only used internally
- [#139] [#152]
[#154] [#158]
- Improve documentation throughout crate
- [#138]
- Remove
publicsuffix
default 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
search
module with ability to create blind indexes. (behind beta flag)
- Introduce
- [#119]
- Add
Clone
,Debug
,Eq
,Hash
, andPartialEq
to 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
blocking
to enable the sync API
- [#111]
- Adds simple policy caching
- [#108]
- Fix bug to allow decryption of 0 and 1 byte documents
- [#98]
- Removes
device_id
from 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_rotation
as anOption<bool>
toGroupMetaResult
,GroupGetResult
,GroupBasicApiResponse
, andGroupGetApiResponse
.
- Added
- [#52]
- Added
device_id
as a parameter toDeviceContext::new
, renamed other parameters. - Changed Serialization/Deserialization of
DeviceContext
.
- Added
- Added
TryFrom<&[u8]>
forPublicKey
UserCreateKeyPair
has been renamed toUserCreateResult
- [#35]
- Clarified documentation for several struct parameters.
- [#43]
- Users can now be created with a
needs_rotation
flag set.
- Users can now be created with a
- [#47]
UserVerifyResult
now containsneeds_rotation
for 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
UserCreateKeyPair
to public API - added
IronOxideErr
to theprelude
- added
From<IronOxideErr> for String
to lib.rs
- added
- Initial Open Source Release