Use idevice-srp crate

This commit is contained in:
Jackson Coxson
2025-12-18 21:32:40 -07:00
parent 4bea784260
commit d6e7b9aef4
3 changed files with 18 additions and 16 deletions

28
Cargo.lock generated
View File

@@ -1202,6 +1202,7 @@ dependencies = [
"ed25519-dalek",
"futures",
"hkdf",
"idevice-srp",
"indexmap",
"json",
"ns-keyed-archive",
@@ -1215,7 +1216,6 @@ dependencies = [
"serde",
"serde_json",
"sha2",
"srp",
"thiserror 2.0.17",
"tokio",
"tokio-openssl",
@@ -1247,6 +1247,20 @@ dependencies = [
"windows-sys 0.61.2",
]
[[package]]
name = "idevice-srp"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d84c9637ebbdfa523f352b62c8cf791288b3fbf59f6eac6c57c7c9949f5924b2"
dependencies = [
"base64 0.21.7",
"digest",
"generic-array",
"lazy_static",
"num-bigint",
"subtle",
]
[[package]]
name = "idevice-tools"
version = "0.1.0"
@@ -2423,18 +2437,6 @@ dependencies = [
"der",
]
[[package]]
name = "srp"
version = "0.6.0"
dependencies = [
"base64 0.21.7",
"digest",
"generic-array",
"lazy_static",
"num-bigint",
"subtle",
]
[[package]]
name = "stable_deref_trait"
version = "1.2.1"

View File

@@ -58,7 +58,7 @@ x25519-dalek = { version = "2", optional = true }
ed25519-dalek = { version = "2", features = ["rand_core"], optional = true }
hkdf = { version = "0.12", optional = true }
chacha20poly1305 = { version = "0.10", optional = true }
srp = { path = "../../apple-private-apis/icloud-auth/rustcrypto-srp", optional = true }
idevice-srp = { version = "0.6", optional = true }
obfstr = { version = "0.4", optional = true }
@@ -113,7 +113,7 @@ remote_pairing = [
"dep:ed25519-dalek",
"dep:hkdf",
"dep:chacha20poly1305",
"dep:srp",
"dep:idevice-srp",
"dep:uuid",
]
restore_service = []

View File

@@ -9,12 +9,12 @@ use chacha20poly1305::{
};
use ed25519_dalek::Signature;
use hkdf::Hkdf;
use idevice_srp::{client::SrpClient, groups::G_3072};
use rand::RngCore;
use rsa::{rand_core::OsRng, signature::SignerMut};
use serde::Serialize;
use serde_json::json;
use sha2::Sha512;
use srp::{client::SrpClient, groups::G_3072};
use tokio::io::{AsyncReadExt, AsyncWriteExt};
use tracing::{debug, warn};
use x25519_dalek::{EphemeralSecret, PublicKey as X25519PublicKey};