Use a more specific exception class for note decryption failure
Closes #1545.
This commit is contained in:
@@ -46,21 +46,25 @@ TEST(noteencryption, api)
|
||||
ASSERT_TRUE(plaintext == message);
|
||||
|
||||
// Test wrong nonce
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, b.get_epk(), uint256(), (i == 0) ? 1 : (i - 1)), std::runtime_error);
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, b.get_epk(), uint256(), (i == 0) ? 1 : (i - 1)),
|
||||
libzcash::note_decryption_failed);
|
||||
|
||||
// Test wrong ephemeral key
|
||||
{
|
||||
ZCNoteEncryption c = ZCNoteEncryption(uint256());
|
||||
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, c.get_epk(), uint256(), i), std::runtime_error);
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, c.get_epk(), uint256(), i),
|
||||
libzcash::note_decryption_failed);
|
||||
}
|
||||
|
||||
// Test wrong seed
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, b.get_epk(), uint256S("11035d60bc1983e37950ce4803418a8fb33ea68d5b937ca382ecbae7564d6a77"), i), std::runtime_error);
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, b.get_epk(), uint256S("11035d60bc1983e37950ce4803418a8fb33ea68d5b937ca382ecbae7564d6a77"), i),
|
||||
libzcash::note_decryption_failed);
|
||||
|
||||
// Test corrupted ciphertext
|
||||
ciphertext[10] ^= 0xff;
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, b.get_epk(), uint256(), i), std::runtime_error);
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, b.get_epk(), uint256(), i),
|
||||
libzcash::note_decryption_failed);
|
||||
ciphertext[10] ^= 0xff;
|
||||
}
|
||||
|
||||
@@ -69,7 +73,8 @@ TEST(noteencryption, api)
|
||||
uint256 sk_enc_2 = ZCNoteEncryption::generate_privkey(uint252());
|
||||
ZCNoteDecryption decrypter(sk_enc_2);
|
||||
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, b.get_epk(), uint256(), i), std::runtime_error);
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, b.get_epk(), uint256(), i),
|
||||
libzcash::note_decryption_failed);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -81,7 +86,8 @@ TEST(noteencryption, api)
|
||||
|
||||
// Test wrong public key (test of KDF)
|
||||
decrypter.change_pk_enc(uint256());
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, b.get_epk(), uint256(), i), std::runtime_error);
|
||||
ASSERT_THROW(decrypter.decrypt(ciphertext, b.get_epk(), uint256(), i),
|
||||
libzcash::note_decryption_failed);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user