aboutsummaryrefslogtreecommitdiff
path: root/envelope.cpp
diff options
context:
space:
mode:
authortomsmeding <tom.smeding@gmail.com>2016-10-09 21:43:38 +0200
committertomsmeding <tom.smeding@gmail.com>2016-10-09 21:43:38 +0200
commitcbea7bc041e5c14670042e3e52f0786f9561af05 (patch)
tree4d646978f1ed984099828a65c92bcee0a72b47dc /envelope.cpp
parentd6dd94c63252ace898d9a60a539c7ab14d69f0ea (diff)
Better error handling (exceptions)
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");
+ }
}
}