Turn return values for libsodium-like API into constants for clarity.
This commit is contained in:
parent
98c6bdbae8
commit
58250b4801
|
@ -1341,6 +1341,12 @@ pub extern "system" fn librustzcash_mmr_hash_node(
|
||||||
0
|
0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The `librustzcash_zebra_crypto_sign_verify_detached` API attempts to
|
||||||
|
// mimic the `crypto_sign_verify_detached` API in libsodium, but uses
|
||||||
|
// the ed25519-zebra crate internally instead.
|
||||||
|
const LIBSODIUM_OK: isize = 0;
|
||||||
|
const LIBSODIUM_ERROR: isize = 1;
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "system" fn librustzcash_zebra_crypto_sign_verify_detached(
|
pub extern "system" fn librustzcash_zebra_crypto_sign_verify_detached(
|
||||||
sig: *const [u8; 64],
|
sig: *const [u8; 64],
|
||||||
|
@ -1354,23 +1360,23 @@ pub extern "system" fn librustzcash_zebra_crypto_sign_verify_detached(
|
||||||
let sig = Signature::from(*unsafe {
|
let sig = Signature::from(*unsafe {
|
||||||
match sig.as_ref() {
|
match sig.as_ref() {
|
||||||
Some(sig) => sig,
|
Some(sig) => sig,
|
||||||
None => return 1,
|
None => return LIBSODIUM_ERROR,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
let pk = match VerificationKey::try_from(*match unsafe { pk.as_ref() } {
|
let pk = match VerificationKey::try_from(*match unsafe { pk.as_ref() } {
|
||||||
Some(pk) => pk,
|
Some(pk) => pk,
|
||||||
None => return 1,
|
None => return LIBSODIUM_ERROR,
|
||||||
}) {
|
}) {
|
||||||
Ok(pk) => pk,
|
Ok(pk) => pk,
|
||||||
Err(_) => return 1,
|
Err(_) => return LIBSODIUM_ERROR,
|
||||||
};
|
};
|
||||||
|
|
||||||
let m = unsafe { slice::from_raw_parts(m, mlen as usize) };
|
let m = unsafe { slice::from_raw_parts(m, mlen as usize) };
|
||||||
|
|
||||||
if pk.verify(&sig, m).is_err() {
|
if pk.verify(&sig, m).is_err() {
|
||||||
1
|
LIBSODIUM_ERROR
|
||||||
} else {
|
} else {
|
||||||
0
|
LIBSODIUM_OK
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue