Skip to content

Commit 67ba9d1

Browse files
committed
Merge branch 'main' of github.com:bitwarden/sdk-internal into arch/more-uuids
# Conflicts: # crates/bitwarden-core/src/client/encryption_settings.rs # crates/bitwarden-core/src/client/internal.rs
2 parents 0b2df1f + 4bb596a commit 67ba9d1

File tree

48 files changed

+423
-280
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+423
-280
lines changed

.github/workflows/rust-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ jobs:
7474
run: cargo install wasm-bindgen-cli --version 0.2.100
7575

7676
- name: Test WASM
77-
run: cargo test --target wasm32-unknown-unknown -p bitwarden-wasm-internal -p bitwarden-threading -p bitwarden-error --all-features
77+
run: cargo test --target wasm32-unknown-unknown -p bitwarden-wasm-internal -p bitwarden-threading -p bitwarden-error -p bitwarden-uuid --all-features
7878

7979
coverage:
8080
name: Coverage

.github/workflows/scan.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ jobs:
7474
ref: ${{ github.event.pull_request.head.sha }}
7575

7676
- name: Scan with SonarCloud
77-
uses: sonarsource/sonarqube-scan-action@bfd4e558cda28cda6b5defafb9232d191be8c203 # v4.2.1
77+
uses: sonarsource/sonarqube-scan-action@2500896589ef8f7247069a56136f8dc177c27ccf # v5.2.0
7878
env:
7979
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
8080
with:

Cargo.lock

Lines changed: 24 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,11 @@ tsify-next = { version = ">=0.5.4, <0.6", features = [
6666
], default-features = false }
6767
uniffi = "=0.29.1"
6868
uuid = { version = ">=1.3.3, <2.0", features = ["serde", "v4", "js"] }
69-
validator = { version = ">=0.18.1, <0.20", features = ["derive"] }
69+
validator = { version = ">=0.18.1, <0.21", features = ["derive"] }
7070
wasm-bindgen = { version = ">=0.2.91, <0.3", features = ["serde-serialize"] }
7171
wasm-bindgen-futures = "0.4.41"
7272
wasm-bindgen-test = "0.3.45"
73+
serde-wasm-bindgen = ">=0.6.0, <0.7"
7374

7475
# There is an incompatibility when using pkcs5 and chacha20 on wasm builds. This can be removed once a new
7576
# rustcrypto-formats crate version is released since the fix has been upstreamed.

crates/bitwarden-core/src/auth/auth_request.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ mod tests {
221221
let email = "[email protected]";
222222

223223
let user_key = "2.Q/2PhzcC7GdeiMHhWguYAQ==|GpqzVdr0go0ug5cZh1n+uixeBC3oC90CIe0hd/HWA/pTRDZ8ane4fmsEIcuc8eMKUt55Y2q/fbNzsYu41YTZzzsJUSeqVjT8/iTQtgnNdpo=|dwI+uyvZ1h/iZ03VQ+/wrGEFYVewBUUl/syYgjsNMbE=".parse().unwrap();
224-
let private_key = "2.yN7l00BOlUE0Sb0M//Q53w==|EwKG/BduQRQ33Izqc/ogoBROIoI5dmgrxSo82sgzgAMIBt3A2FZ9vPRMY+GWT85JiqytDitGR3TqwnFUBhKUpRRAq4x7rA6A1arHrFp5Tp1p21O3SfjtvB3quiOKbqWk6ZaU1Np9HwqwAecddFcB0YyBEiRX3VwF2pgpAdiPbSMuvo2qIgyob0CUoC/h4Bz1be7Qa7B0Xw9/fMKkB1LpOm925lzqosyMQM62YpMGkjMsbZz0uPopu32fxzDWSPr+kekNNyLt9InGhTpxLmq1go/pXR2uw5dfpXc5yuta7DB0EGBwnQ8Vl5HPdDooqOTD9I1jE0mRyuBpWTTI3FRnu3JUh3rIyGBJhUmHqGZvw2CKdqHCIrQeQkkEYqOeJRJVdBjhv5KGJifqT3BFRwX/YFJIChAQpebNQKXe/0kPivWokHWwXlDB7S7mBZzhaAPidZvnuIhalE2qmTypDwHy22FyqV58T8MGGMchcASDi/QXI6kcdpJzPXSeU9o+NC68QDlOIrMVxKFeE7w7PvVmAaxEo0YwmuAzzKy9QpdlK0aab/xEi8V4iXj4hGepqAvHkXIQd+r3FNeiLfllkb61p6WTjr5urcmDQMR94/wYoilpG5OlybHdbhsYHvIzYoLrC7fzl630gcO6t4nM24vdB6Ymg9BVpEgKRAxSbE62Tqacxqnz9AcmgItb48NiR/He3n3ydGjPYuKk/ihZMgEwAEZvSlNxYONSbYrIGDtOY+8Nbt6KiH3l06wjZW8tcmFeVlWv+tWotnTY9IqlAfvNVTjtsobqtQnvsiDjdEVtNy/s2ci5TH+NdZluca2OVEr91Wayxh70kpM6ib4UGbfdmGgCo74gtKvKSJU0rTHakQ5L9JlaSDD5FamBRyI0qfL43Ad9qOUZ8DaffDCyuaVyuqk7cz9HwmEmvWU3VQ+5t06n/5kRDXttcw8w+3qClEEdGo1KeENcnXCB32dQe3tDTFpuAIMLqwXs6FhpawfZ5kPYvLPczGWaqftIs/RXJ/EltGc0ugw2dmTLpoQhCqrcKEBDoYVk0LDZKsnzitOGdi9mOWse7Se8798ib1UsHFUjGzISEt6upestxOeupSTOh0v4+AjXbDzRUyogHww3V+Bqg71bkcMxtB+WM+pn1XNbVTyl9NR040nhP7KEf6e9ruXAtmrBC2ah5cFEpLIot77VFZ9ilLuitSz+7T8n1yAh1IEG6xxXxninAZIzi2qGbH69O5RSpOJuJTv17zTLJQIIc781JwQ2TTwTGnx5wZLbffhCasowJKd2EVcyMJyhz6ru0PvXWJ4hUdkARJs3Xu8dus9a86N8Xk6aAPzBDqzYb1vyFIfBxP0oO8xFHgd30Cgmz8UrSE3qeWRrF8ftrI6xQnFjHBGWD/JWSvd6YMcQED0aVuQkuNW9ST/DzQThPzRfPUoiL10yAmV7Ytu4fR3x2sF0Yfi87YhHFuCMpV/DsqxmUizyiJuD938eRcH8hzR/VO53Qo3UIsqOLcyXtTv6THjSlTopQ+JOLOnHm1w8dzYbLN44OG44rRsbihMUQp+wUZ6bsI8rrOnm9WErzkbQFbrfAINdoCiNa6cimYIjvvnMTaFWNymqY1vZxGztQiMiHiHYwTfwHTXrb9j0uPM=|09J28iXv9oWzYtzK2LBT6Yht4IT4MijEkk0fwFdrVQ4=";
224+
let private_key: EncString = "2.yN7l00BOlUE0Sb0M//Q53w==|EwKG/BduQRQ33Izqc/ogoBROIoI5dmgrxSo82sgzgAMIBt3A2FZ9vPRMY+GWT85JiqytDitGR3TqwnFUBhKUpRRAq4x7rA6A1arHrFp5Tp1p21O3SfjtvB3quiOKbqWk6ZaU1Np9HwqwAecddFcB0YyBEiRX3VwF2pgpAdiPbSMuvo2qIgyob0CUoC/h4Bz1be7Qa7B0Xw9/fMKkB1LpOm925lzqosyMQM62YpMGkjMsbZz0uPopu32fxzDWSPr+kekNNyLt9InGhTpxLmq1go/pXR2uw5dfpXc5yuta7DB0EGBwnQ8Vl5HPdDooqOTD9I1jE0mRyuBpWTTI3FRnu3JUh3rIyGBJhUmHqGZvw2CKdqHCIrQeQkkEYqOeJRJVdBjhv5KGJifqT3BFRwX/YFJIChAQpebNQKXe/0kPivWokHWwXlDB7S7mBZzhaAPidZvnuIhalE2qmTypDwHy22FyqV58T8MGGMchcASDi/QXI6kcdpJzPXSeU9o+NC68QDlOIrMVxKFeE7w7PvVmAaxEo0YwmuAzzKy9QpdlK0aab/xEi8V4iXj4hGepqAvHkXIQd+r3FNeiLfllkb61p6WTjr5urcmDQMR94/wYoilpG5OlybHdbhsYHvIzYoLrC7fzl630gcO6t4nM24vdB6Ymg9BVpEgKRAxSbE62Tqacxqnz9AcmgItb48NiR/He3n3ydGjPYuKk/ihZMgEwAEZvSlNxYONSbYrIGDtOY+8Nbt6KiH3l06wjZW8tcmFeVlWv+tWotnTY9IqlAfvNVTjtsobqtQnvsiDjdEVtNy/s2ci5TH+NdZluca2OVEr91Wayxh70kpM6ib4UGbfdmGgCo74gtKvKSJU0rTHakQ5L9JlaSDD5FamBRyI0qfL43Ad9qOUZ8DaffDCyuaVyuqk7cz9HwmEmvWU3VQ+5t06n/5kRDXttcw8w+3qClEEdGo1KeENcnXCB32dQe3tDTFpuAIMLqwXs6FhpawfZ5kPYvLPczGWaqftIs/RXJ/EltGc0ugw2dmTLpoQhCqrcKEBDoYVk0LDZKsnzitOGdi9mOWse7Se8798ib1UsHFUjGzISEt6upestxOeupSTOh0v4+AjXbDzRUyogHww3V+Bqg71bkcMxtB+WM+pn1XNbVTyl9NR040nhP7KEf6e9ruXAtmrBC2ah5cFEpLIot77VFZ9ilLuitSz+7T8n1yAh1IEG6xxXxninAZIzi2qGbH69O5RSpOJuJTv17zTLJQIIc781JwQ2TTwTGnx5wZLbffhCasowJKd2EVcyMJyhz6ru0PvXWJ4hUdkARJs3Xu8dus9a86N8Xk6aAPzBDqzYb1vyFIfBxP0oO8xFHgd30Cgmz8UrSE3qeWRrF8ftrI6xQnFjHBGWD/JWSvd6YMcQED0aVuQkuNW9ST/DzQThPzRfPUoiL10yAmV7Ytu4fR3x2sF0Yfi87YhHFuCMpV/DsqxmUizyiJuD938eRcH8hzR/VO53Qo3UIsqOLcyXtTv6THjSlTopQ+JOLOnHm1w8dzYbLN44OG44rRsbihMUQp+wUZ6bsI8rrOnm9WErzkbQFbrfAINdoCiNa6cimYIjvvnMTaFWNymqY1vZxGztQiMiHiHYwTfwHTXrb9j0uPM=|09J28iXv9oWzYtzK2LBT6Yht4IT4MijEkk0fwFdrVQ4=".parse().unwrap();
225225

226226
// Initialize an existing client which is unlocked
227227
let existing_device = Client::new(None);
@@ -230,7 +230,7 @@ mod tests {
230230

231231
existing_device
232232
.internal
233-
.initialize_user_crypto_master_key(master_key, user_key, private_key.parse().unwrap())
233+
.initialize_user_crypto_master_key(master_key, user_key, private_key.clone())
234234
.unwrap();
235235

236236
// Initialize a new device which will request to be logged in
@@ -247,7 +247,7 @@ mod tests {
247247
user_id: Some(UserId::new_v4()),
248248
kdf_params: kdf,
249249
email: email.to_owned(),
250-
private_key: private_key.to_owned(),
250+
private_key,
251251
method: InitUserCryptoMethod::AuthRequest {
252252
request_private_key: auth_req.private_key,
253253
method: AuthRequestMethod::UserKey {

crates/bitwarden-core/src/auth/login/auth_request.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ pub(crate) async fn complete_auth_request(
118118
user_id: None,
119119
kdf_params: kdf,
120120
email: auth_req.email,
121-
private_key: require!(r.private_key),
121+
private_key: require!(r.private_key).parse()?,
122122
method: InitUserCryptoMethod::AuthRequest {
123123
request_private_key: auth_req.private_key,
124124
method,

crates/bitwarden-core/src/auth/login/password.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,11 @@ use serde::{Deserialize, Serialize};
77

88
use crate::auth::{
99
api::response::IdentityTokenResponse,
10-
login::{
11-
response::{captcha_response::CaptchaResponse, two_factor::TwoFactorProviders},
12-
LoginError,
13-
},
10+
login::response::{captcha_response::CaptchaResponse, two_factor::TwoFactorProviders},
1411
};
1512
#[cfg(feature = "internal")]
1613
use crate::{
17-
auth::{api::request::PasswordTokenRequest, login::TwoFactorRequest},
14+
auth::{api::request::PasswordTokenRequest, login::LoginError, login::TwoFactorRequest},
1815
client::LoginMethod,
1916
Client,
2017
};

crates/bitwarden-core/src/auth/register.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use bitwarden_api_identity::{
33
models::{KeysRequestModel, RegisterRequestModel},
44
};
55
use bitwarden_crypto::{
6-
default_pbkdf2_iterations, CryptoError, HashPurpose, Kdf, MasterKey, RsaKeyPair,
6+
default_pbkdf2_iterations, CryptoError, EncString, HashPurpose, Kdf, MasterKey, RsaKeyPair,
77
};
88
use serde::{Deserialize, Serialize};
99
use thiserror::Error;
@@ -76,14 +76,14 @@ pub(super) fn make_register_keys(
7676

7777
Ok(RegisterKeyResponse {
7878
master_password_hash,
79-
encrypted_user_key: encrypted_user_key.to_string(),
79+
encrypted_user_key,
8080
keys,
8181
})
8282
}
8383

8484
#[cfg_attr(feature = "uniffi", derive(uniffi::Record))]
8585
pub struct RegisterKeyResponse {
8686
pub master_password_hash: String,
87-
pub encrypted_user_key: String,
87+
pub encrypted_user_key: EncString,
8888
pub keys: RsaKeyPair,
8989
}

crates/bitwarden-core/src/client/encryption_settings.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1-
use bitwarden_crypto::{AsymmetricCryptoKey, KeyStore, SymmetricCryptoKey};
21
#[cfg(feature = "internal")]
3-
use bitwarden_crypto::{EncString, UnsignedSharedKey};
2+
use bitwarden_crypto::{AsymmetricCryptoKey, EncString, UnsignedSharedKey};
3+
#[cfg(any(feature = "internal", feature = "secrets"))]
4+
use bitwarden_crypto::{KeyStore, SymmetricCryptoKey};
45
use bitwarden_error::bitwarden_error;
56
use thiserror::Error;
67

8+
#[cfg(feature = "internal")]
9+
use crate::key_management::AsymmetricKeyId;
10+
#[cfg(any(feature = "internal", feature = "secrets"))]
11+
use crate::key_management::{KeyIds, SymmetricKeyId};
712
#[cfg(any(feature = "secrets", feature = "internal"))]
813
use crate::OrganizationId;
9-
use crate::{
10-
error::UserIdAlreadySetError,
11-
key_management::{AsymmetricKeyId, KeyIds, SymmetricKeyId},
12-
MissingPrivateKeyError, VaultLockedError,
13-
};
14+
use crate::{error::UserIdAlreadySetError, MissingPrivateKeyError, VaultLockedError};
1415

1516
#[bitwarden_error(flat)]
1617
#[derive(Debug, Error)]

crates/bitwarden-core/src/client/internal.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,11 @@ use chrono::Utc;
99

1010
#[cfg(feature = "secrets")]
1111
use super::login_method::ServiceAccountLoginMethod;
12+
#[cfg(any(feature = "internal", feature = "secrets"))]
13+
use crate::client::encryption_settings::EncryptionSettings;
1214
use crate::{
13-
auth::renew::renew_token,
14-
client::{encryption_settings::EncryptionSettings, login_method::LoginMethod},
15-
error::UserIdAlreadySetError,
16-
key_management::KeyIds,
17-
DeviceType, UserId,
15+
auth::renew::renew_token, client::login_method::LoginMethod, error::UserIdAlreadySetError,
16+
key_management::KeyIds, DeviceType, UserId,
1817
};
1918
#[cfg(feature = "internal")]
2019
use crate::{

0 commit comments

Comments
 (0)