aboutsummaryrefslogtreecommitdiff
path: root/envelope.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'envelope.cpp')
-rw-r--r--envelope.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/envelope.cpp b/envelope.cpp
index c881815..33ac8c4 100644
--- a/envelope.cpp
+++ b/envelope.cpp
@@ -105,7 +105,9 @@ namespace Envelope{
bytes.push_back(res.lowdigits()&0xff);
res>>=8;
}
- assert(res==0);
+ if(res!=0){
+ throw invalid_argument("Envelope RSA private key incorrect");
+ }
string decrkey(bytes.size(),'\0');
for(int i=0;i<(int)bytes.size();i++)decrkey[bytes.size()-1-i]=bytes[i];
#ifdef DEBUG
@@ -115,7 +117,11 @@ namespace Envelope{
#ifdef DEBUG
cerr<<"payload="<<Base64::encode(data.substr(0,data.size()-2-encrkeylen))<<endl;
#endif
- return AES::decrypt(data.substr(0,data.size()-2-encrkeylen),decrkey,AES::AES_256_CBC);
+ try {
+ return AES::decrypt(data.substr(0,data.size()-2-encrkeylen),decrkey,AES::AES_256_CBC);
+ } catch(invalid_argument){
+ throw invalid_argument("Envelope RSA private key incorrect");
+ }
}
}