mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 09:26:29 +03:00
fix: more logic fixes for encryption
This commit is contained in:
@@ -522,15 +522,15 @@ pub unsafe fn dc_apeerstate_save_to_db(
|
|||||||
success
|
success
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO should return bool /rtn
|
|
||||||
pub unsafe fn dc_apeerstate_has_verified_key(
|
pub unsafe fn dc_apeerstate_has_verified_key(
|
||||||
peerstate: &dc_apeerstate_t,
|
peerstate: &dc_apeerstate_t,
|
||||||
fingerprints: *const dc_hash_t,
|
fingerprints: *const dc_hash_t,
|
||||||
) -> libc::c_int {
|
) -> bool {
|
||||||
if fingerprints.is_null() {
|
if fingerprints.is_null() {
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
if !peerstate.verified_key.is_some()
|
|
||||||
|
if peerstate.verified_key.is_some()
|
||||||
&& !peerstate.verified_key_fingerprint.is_null()
|
&& !peerstate.verified_key_fingerprint.is_null()
|
||||||
&& !dc_hash_find(
|
&& !dc_hash_find(
|
||||||
fingerprints,
|
fingerprints,
|
||||||
@@ -539,8 +539,8 @@ pub unsafe fn dc_apeerstate_has_verified_key(
|
|||||||
)
|
)
|
||||||
.is_null()
|
.is_null()
|
||||||
{
|
{
|
||||||
return 1;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
0
|
false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1114,19 +1114,21 @@ pub unsafe fn dc_contact_is_verified_ex<'a>(
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let mut peerstate = dc_apeerstate_new((*contact).context);
|
let mut peerstate = dc_apeerstate_new((*contact).context);
|
||||||
let mut res = 0;
|
|
||||||
|
|
||||||
if 0 != dc_apeerstate_load_by_addr(
|
let res = if 0
|
||||||
|
!= dc_apeerstate_load_by_addr(
|
||||||
&mut peerstate,
|
&mut peerstate,
|
||||||
&mut (*contact).context.sql.clone().read().unwrap(),
|
&(*contact).context.sql.clone().read().unwrap(),
|
||||||
(*contact).addr,
|
(*contact).addr,
|
||||||
) {
|
) {
|
||||||
res = if peerstate.verified_key.is_some() {
|
if peerstate.verified_key.is_some() {
|
||||||
2
|
2
|
||||||
} else {
|
} else {
|
||||||
0
|
0
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
0
|
||||||
|
};
|
||||||
dc_apeerstate_unref(&mut peerstate);
|
dc_apeerstate_unref(&mut peerstate);
|
||||||
|
|
||||||
res
|
res
|
||||||
|
|||||||
@@ -1896,12 +1896,10 @@ unsafe fn check_verified_properties(
|
|||||||
);
|
);
|
||||||
dc_log_warning(context, 0i32, *failure_reason);
|
dc_log_warning(context, 0i32, *failure_reason);
|
||||||
current_block = 14837890932895028253;
|
current_block = 14837890932895028253;
|
||||||
} else if 0
|
} else if !dc_apeerstate_has_verified_key(
|
||||||
== dc_apeerstate_has_verified_key(
|
|
||||||
&peerstate,
|
&peerstate,
|
||||||
(*(*mimeparser).e2ee_helper).signatures,
|
(*(*mimeparser).e2ee_helper).signatures,
|
||||||
)
|
) {
|
||||||
{
|
|
||||||
*failure_reason = dc_mprintf(
|
*failure_reason = dc_mprintf(
|
||||||
b"%s. See \"Info\" for details.\x00" as *const u8 as *const libc::c_char,
|
b"%s. See \"Info\" for details.\x00" as *const u8 as *const libc::c_char,
|
||||||
b"The message was sent with non-verified encryption.\x00" as *const u8
|
b"The message was sent with non-verified encryption.\x00" as *const u8
|
||||||
|
|||||||
Reference in New Issue
Block a user