Splits exceptions in common + client

This commit is contained in:
Sergi Delgado Segura
2020-04-09 17:49:46 +02:00
parent b3841c1da6
commit 80e72f089d
4 changed files with 44 additions and 48 deletions

View File

@@ -1,22 +1,9 @@
class InvalidParameter(ValueError):
"""Raised when a command line parameter is invalid (either missing or wrong)"""
def __init__(self, msg, **kwargs):
self.reason = msg
self.kwargs = kwargs
from common.exceptions import BasicException
class InvalidKey(Exception):
"""Raised when there is an error loading the keys"""
def __init__(self, msg, **kwargs):
self.reason = msg
self.kwargs = kwargs
class TowerResponseError(Exception):
class TowerConnectionError(BasicException):
"""Raised when the tower responds with an error"""
def __init__(self, msg, **kwargs):
self.reason = msg
self.kwargs = kwargs
class TowerResponseError(BasicException):
"""Raised when the tower responds with an error"""

37
common/exceptions.py Normal file
View File

@@ -0,0 +1,37 @@
class BasicException(Exception):
def __init__(self, msg, **kwargs):
self.msg = msg
self.kwargs = kwargs
def __str__(self):
if len(self.kwargs) > 2:
params = "".join("{}={}, ".format(k, v) for k, v in self.kwargs.items())
# Remove the extra 2 characters (space and comma) and add all data to the final message.
message = self.msg + " ({})".format(params[:-2])
else:
message = self.msg
return message
def to_json(self):
response = {"error": self.msg}
response.update(self.kwargs)
return response
class InvalidParameter(BasicException):
"""Raised when a command line parameter is invalid (either missing or wrong)"""
class InvalidKey(BasicException):
"""Raised when there is an error loading the keys"""
class EncryptionError(BasicException):
"""Raised when there is an error with encryption related functions, covers decryption"""
class SignatureError(BasicException):
"""Raised when there is an with the signature related functions, covers EC recover"""

View File

@@ -1,32 +1,4 @@
class BasicException(Exception):
def __init__(self, msg, **kwargs):
self.msg = msg
self.kwargs = kwargs
def __str__(self):
if len(self.kwargs) > 2:
params = "".join("{}={}, ".format(k, v) for k, v in self.kwargs.items())
# Remove the extra 2 characters (space and comma) and add all data to the final message.
message = self.msg + " ({})".format(params[:-2])
else:
message = self.msg
return message
def to_json(self):
response = {"error": self.msg}
response.update(self.kwargs)
return response
class InvalidParameter(BasicException):
"""Raised when a command line parameter is invalid (either missing or wrong)"""
class InvalidKey(BasicException):
"""Raised when there is an error loading the keys"""
from common.exceptions import BasicException
class TowerConnectionError(BasicException):

View File

@@ -5,7 +5,7 @@ from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import ec
from exceptions import InvalidKey
from common.exceptions import InvalidKey
from common.cryptographer import Cryptographer