Avoid using unwrap() when calling derive_esk()

Co-authored-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
ying tong 2020-08-07 00:12:07 +08:00 committed by GitHub
parent d54fd09c5f
commit 13f4d0844e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 8 deletions

View File

@ -381,8 +381,7 @@ fn parse_note_plaintext_without_memo<P: consensus::Parameters>(
return None;
}
if let Rseed::AfterZip212(_) = note.rseed {
let derived_esk = note.derive_esk().unwrap();
if let Some(derived_esk) = note.derive_esk() {
if note.g_d.mul(derived_esk, &JUBJUB) != *epk {
return None;
}
@ -461,7 +460,7 @@ pub fn try_sapling_note_decryption<P: consensus::Parameters>(
///
/// Implements the procedure specified in [`ZIP 307`].
///
/// [`ZIP 307`]: https://github.com/zcash/zips/pull/226
/// [`ZIP 307`]: https://zips.z.cash/zip-0307
pub fn try_sapling_compact_note_decryption<P: consensus::Parameters>(
height: u32,
ivk: &Fs,
@ -580,8 +579,8 @@ pub fn try_sapling_output_recovery<P: consensus::Parameters>(
return None;
}
if let Rseed::AfterZip212(_) = note.rseed {
if note.derive_esk().unwrap() != esk {
if let Some(derived_esk) = note.derive_esk() {
if derived_esk != esk {
return None;
}
}

View File

@ -337,8 +337,8 @@ impl<E: JubjubEngine> Note<E> {
}
pub fn generate_or_derive_esk<R: RngCore + CryptoRng>(&self, rng: &mut R) -> E::Fs {
match self.rseed {
Rseed::BeforeZip212(_) => {
match self.derive_esk() {
None => {
// create random 64 byte buffer
let mut buffer = [0u8; 64];
&rng.fill_bytes(&mut buffer);
@ -346,7 +346,7 @@ impl<E: JubjubEngine> Note<E> {
// reduce to uniform value
E::Fs::to_uniform(&buffer[..])
}
Rseed::AfterZip212(_) => self.derive_esk().unwrap(),
Some(esk) => esk,
}
}