mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 09:26:29 +03:00
build: update rPGP from 0.16.0 to 0.17.0
This commit is contained in:
21
Cargo.lock
generated
21
Cargo.lock
generated
@@ -440,18 +440,18 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitfields"
|
name = "bitfields"
|
||||||
version = "0.12.4"
|
version = "1.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a1d84268bbf9b487d31fe4b849edbefcd3911422d7a07de855a2da1f70ab3d1c"
|
checksum = "dcdbce6688e3ab66aff2ab413b762ccde9f37990e27bba0bb38a4b2ad1b5d877"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitfields-impl",
|
"bitfields-impl",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitfields-impl"
|
name = "bitfields-impl"
|
||||||
version = "0.9.4"
|
version = "1.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "07c93edde7bb4416c35c85048e34f78999dcb47d199bde3b1d79286156f3e2fb"
|
checksum = "57413e4b276d883b77fb368b7b33ae6a5eb97692852d49a5394d4f72ba961827"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -4123,9 +4123,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pgp"
|
name = "pgp"
|
||||||
version = "0.16.0"
|
version = "0.17.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f91d320242d9b686612b15526fe38711afdf856e112eaa4775ce25b0d9b12b11"
|
checksum = "7d918d5da2ce943e4c6088d7694f33f47c19374d6f0f2080a0c5e8010afdfd29"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aead",
|
"aead",
|
||||||
"aes",
|
"aes",
|
||||||
@@ -4165,7 +4165,7 @@ dependencies = [
|
|||||||
"k256",
|
"k256",
|
||||||
"log",
|
"log",
|
||||||
"md-5",
|
"md-5",
|
||||||
"nom 7.1.3",
|
"nom 8.0.0",
|
||||||
"num-bigint-dig",
|
"num-bigint-dig",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
"num_enum",
|
"num_enum",
|
||||||
@@ -4175,6 +4175,7 @@ dependencies = [
|
|||||||
"p521",
|
"p521",
|
||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
"regex",
|
"regex",
|
||||||
|
"replace_with",
|
||||||
"ripemd",
|
"ripemd",
|
||||||
"rsa",
|
"rsa",
|
||||||
"sha1",
|
"sha1",
|
||||||
@@ -4919,6 +4920,12 @@ version = "0.8.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "replace_with"
|
||||||
|
version = "0.1.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "51743d3e274e2b18df81c4dc6caf8a5b8e15dbe799e0dca05c7617380094e884"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reqwest"
|
name = "reqwest"
|
||||||
version = "0.12.15"
|
version = "0.12.15"
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ num-derive = "0.4"
|
|||||||
num-traits = { workspace = true }
|
num-traits = { workspace = true }
|
||||||
parking_lot = "0.12.4"
|
parking_lot = "0.12.4"
|
||||||
percent-encoding = "2.3"
|
percent-encoding = "2.3"
|
||||||
pgp = { version = "0.16.0", default-features = false }
|
pgp = { version = "0.17.0", default-features = false }
|
||||||
pin-project = "1"
|
pin-project = "1"
|
||||||
qrcodegen = "1.7.0"
|
qrcodegen = "1.7.0"
|
||||||
quick-xml = "0.37"
|
quick-xml = "0.37"
|
||||||
|
|||||||
15
src/pgp.rs
15
src/pgp.rs
@@ -8,9 +8,9 @@ use chrono::SubsecRound;
|
|||||||
use deltachat_contact_tools::EmailAddress;
|
use deltachat_contact_tools::EmailAddress;
|
||||||
use pgp::armor::BlockType;
|
use pgp::armor::BlockType;
|
||||||
use pgp::composed::{
|
use pgp::composed::{
|
||||||
ArmorOptions, Deserializable, KeyType as PgpKeyType, Message, MessageBuilder,
|
ArmorOptions, DecryptionOptions, Deserializable, DetachedSignature, KeyType as PgpKeyType,
|
||||||
SecretKeyParamsBuilder, SignedPublicKey, SignedPublicSubKey, SignedSecretKey,
|
Message, MessageBuilder, SecretKeyParamsBuilder, SignedPublicKey, SignedPublicSubKey,
|
||||||
StandaloneSignature, SubkeyParamsBuilder, TheRing,
|
SignedSecretKey, SubkeyParamsBuilder, TheRing,
|
||||||
};
|
};
|
||||||
use pgp::crypto::ecc_curve::ECCCurve;
|
use pgp::crypto::ecc_curve::ECCCurve;
|
||||||
use pgp::crypto::hash::HashAlgorithm;
|
use pgp::crypto::hash::HashAlgorithm;
|
||||||
@@ -226,7 +226,7 @@ pub fn pk_calc_signature(
|
|||||||
plain.as_slice(),
|
plain.as_slice(),
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
let sig = StandaloneSignature::new(signature);
|
let sig = DetachedSignature::new(signature);
|
||||||
|
|
||||||
Ok(sig.to_armored_string(ArmorOptions::default())?)
|
Ok(sig.to_armored_string(ArmorOptions::default())?)
|
||||||
}
|
}
|
||||||
@@ -245,12 +245,13 @@ pub fn pk_decrypt(
|
|||||||
let skeys: Vec<&SignedSecretKey> = private_keys_for_decryption.iter().collect();
|
let skeys: Vec<&SignedSecretKey> = private_keys_for_decryption.iter().collect();
|
||||||
let empty_pw = Password::empty();
|
let empty_pw = Password::empty();
|
||||||
|
|
||||||
|
let decrypt_options = DecryptionOptions::new().enable_legacy();
|
||||||
let ring = TheRing {
|
let ring = TheRing {
|
||||||
secret_keys: skeys,
|
secret_keys: skeys,
|
||||||
key_passwords: vec![&empty_pw],
|
key_passwords: vec![&empty_pw],
|
||||||
message_password: vec![],
|
message_password: vec![],
|
||||||
session_keys: vec![],
|
session_keys: vec![],
|
||||||
allow_legacy: false,
|
decrypt_options,
|
||||||
};
|
};
|
||||||
let (msg, ring_result) = msg.decrypt_the_ring(ring, true)?;
|
let (msg, ring_result) = msg.decrypt_the_ring(ring, true)?;
|
||||||
anyhow::ensure!(
|
anyhow::ensure!(
|
||||||
@@ -293,10 +294,10 @@ pub fn pk_validate(
|
|||||||
) -> Result<HashSet<Fingerprint>> {
|
) -> Result<HashSet<Fingerprint>> {
|
||||||
let mut ret: HashSet<Fingerprint> = Default::default();
|
let mut ret: HashSet<Fingerprint> = Default::default();
|
||||||
|
|
||||||
let standalone_signature = StandaloneSignature::from_armor_single(Cursor::new(signature))?.0;
|
let detached_signature = DetachedSignature::from_armor_single(Cursor::new(signature))?.0;
|
||||||
|
|
||||||
for pkey in public_keys_for_validation {
|
for pkey in public_keys_for_validation {
|
||||||
if standalone_signature.verify(pkey, content).is_ok() {
|
if detached_signature.verify(pkey, content).is_ok() {
|
||||||
let fp = pkey.dc_fingerprint();
|
let fp = pkey.dc_fingerprint();
|
||||||
ret.insert(fp);
|
ret.insert(fp);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user