diff options
author | tomsmeding <tom.smeding@gmail.com> | 2016-10-09 21:43:38 +0200 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2016-10-09 21:43:38 +0200 |
commit | cbea7bc041e5c14670042e3e52f0786f9561af05 (patch) | |
tree | 4d646978f1ed984099828a65c92bcee0a72b47dc /envelope.cpp | |
parent | d6dd94c63252ace898d9a60a539c7ab14d69f0ea (diff) |
Better error handling (exceptions)
Diffstat (limited to 'envelope.cpp')
-rw-r--r-- | envelope.cpp | 10 |
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"); + } } } |