passphera-core 0.22.0__py3-none-any.whl → 0.24.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- passphera_core/application/generator.py +4 -4
- passphera_core/entities.py +15 -14
- passphera_core/exceptions.py +6 -0
- {passphera_core-0.22.0.dist-info → passphera_core-0.24.0.dist-info}/METADATA +1 -1
- passphera_core-0.24.0.dist-info/RECORD +12 -0
- passphera_core-0.22.0.dist-info/RECORD +0 -12
- {passphera_core-0.22.0.dist-info → passphera_core-0.24.0.dist-info}/WHEEL +0 -0
- {passphera_core-0.22.0.dist-info → passphera_core-0.24.0.dist-info}/top_level.txt +0 -0
@@ -22,9 +22,9 @@ class SetPropertyUseCase:
|
|
22
22
|
def __init__(self, generator_repository: GeneratorRepository):
|
23
23
|
self.generator_repository: GeneratorRepository = generator_repository
|
24
24
|
|
25
|
-
def __call__(self,
|
25
|
+
def __call__(self, prop: str, value: str) -> Generator:
|
26
26
|
generator_entity: Generator = self.generator_repository.get()
|
27
|
-
generator_entity.set_property(
|
27
|
+
generator_entity.set_property(prop, value)
|
28
28
|
self.generator_repository.update(generator_entity)
|
29
29
|
return generator_entity
|
30
30
|
|
@@ -33,9 +33,9 @@ class ResetPropertyUseCase:
|
|
33
33
|
def __init__(self, generator_repository: GeneratorRepository):
|
34
34
|
self.generator_repository: GeneratorRepository = generator_repository
|
35
35
|
|
36
|
-
def __call__(self,
|
36
|
+
def __call__(self, prop: str) -> Generator:
|
37
37
|
generator_entity: Generator = self.generator_repository.get()
|
38
|
-
generator_entity.reset_property(
|
38
|
+
generator_entity.reset_property(prop)
|
39
39
|
self.generator_repository.update(generator_entity)
|
40
40
|
return generator_entity
|
41
41
|
|
passphera_core/entities.py
CHANGED
@@ -8,6 +8,8 @@ from cipherspy.cipher import *
|
|
8
8
|
from cipherspy.exceptions import InvalidAlgorithmException
|
9
9
|
from cipherspy.utilities import generate_salt, derive_key
|
10
10
|
|
11
|
+
from passphera_core.exceptions import InvalidPropertyNameException
|
12
|
+
|
11
13
|
|
12
14
|
@dataclass
|
13
15
|
class Password:
|
@@ -103,35 +105,34 @@ class Generator:
|
|
103
105
|
"characters_replacements": self.characters_replacements,
|
104
106
|
}
|
105
107
|
|
106
|
-
def set_property(self,
|
108
|
+
def set_property(self, prop: str, value: str):
|
107
109
|
"""
|
108
110
|
Update a generator property with a new value
|
109
|
-
:param
|
111
|
+
:param prop: The property name to update; must be one of: shift, multiplier, key, algorithm, prefix, postfix
|
110
112
|
:param value: The new value to set for the property
|
111
113
|
:raises ValueError: If the property name is not one of the allowed properties
|
112
114
|
:return: None
|
113
115
|
"""
|
114
|
-
if
|
115
|
-
raise
|
116
|
-
if
|
116
|
+
if prop not in {"shift", "multiplier", "key", "algorithm", "prefix", "postfix"}:
|
117
|
+
raise InvalidPropertyNameException(prop)
|
118
|
+
if prop in ["shift", "multiplier"]:
|
117
119
|
value = int(value)
|
118
|
-
setattr(self,
|
119
|
-
if
|
120
|
+
setattr(self, prop, value)
|
121
|
+
if prop == "algorithm":
|
120
122
|
self.get_algorithm()
|
121
123
|
self.updated_at = datetime.now(timezone.utc)
|
122
124
|
|
123
|
-
def reset_property(self,
|
125
|
+
def reset_property(self, prop: str):
|
124
126
|
"""
|
125
127
|
Reset a generator property to its default value
|
126
|
-
:param
|
128
|
+
:param prop: The property name to reset, it must be one of: shift, multiplier, key, algorithm, prefix, postfix
|
127
129
|
:raises ValueError: If the property name is not one of the allowed properties
|
128
130
|
:return: None
|
129
131
|
"""
|
130
|
-
if
|
131
|
-
raise
|
132
|
-
|
133
|
-
|
134
|
-
if property == "algorithm":
|
132
|
+
if prop not in {"shift", "multiplier", "key", "algorithm", "prefix", "postfix"}:
|
133
|
+
raise InvalidPropertyNameException(prop)
|
134
|
+
setattr(self, prop, self._default_properties[prop])
|
135
|
+
if prop == "algorithm":
|
135
136
|
self.get_algorithm()
|
136
137
|
self.updated_at = datetime.now(timezone.utc)
|
137
138
|
|
passphera_core/exceptions.py
CHANGED
@@ -17,3 +17,9 @@ class DuplicatePasswordException(Exception):
|
|
17
17
|
if hasattr(password, 'context') and password.context:
|
18
18
|
return f"Password for context '{password.context}' already exists"
|
19
19
|
return "Duplicate password detected"
|
20
|
+
|
21
|
+
|
22
|
+
class InvalidPropertyNameException(Exception):
|
23
|
+
def __init__(self, property_name: str) -> None:
|
24
|
+
self.property_name = property_name
|
25
|
+
super().__init__(f"Invalid property name '{property_name}'")
|
@@ -0,0 +1,12 @@
|
|
1
|
+
passphera_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
+
passphera_core/entities.py,sha256=cewoafnMYp-ezjuvwhki0wCHJQyK2NKJ7JnQ8xKrVVE,7279
|
3
|
+
passphera_core/exceptions.py,sha256=T3H6-R-h8BaiRXbeIr2Ak1PlVvzsn8sxbpu8BwLFGD8,853
|
4
|
+
passphera_core/interfaces.py,sha256=DpHFh_vnamORf69P1dwLrZ8AYZPcYIol0Lq_VKRBkXc,855
|
5
|
+
passphera_core/utilities.py,sha256=n7cAVox-yGd60595RjLvrGKSGqFQRm279YqKS3-R1X0,748
|
6
|
+
passphera_core/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
+
passphera_core/application/generator.py,sha256=WnMuv-zBPa6d_eCOKtbtsDl1CmZ_YcnXqH5bpVIXhgs,2452
|
8
|
+
passphera_core/application/password.py,sha256=9wsSz3uMWEZCgfnX5V7WYiWp2OqjSmsn6OSWK4HIIfo,2876
|
9
|
+
passphera_core-0.24.0.dist-info/METADATA,sha256=2NneeeOO99q-4JKoT6d9MqAy7jelscfPhrPkv4nDWr4,868
|
10
|
+
passphera_core-0.24.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
11
|
+
passphera_core-0.24.0.dist-info/top_level.txt,sha256=aDUX2iWGOyfzyf6XakLWTbgeWqNrypMHO074Qratyds,15
|
12
|
+
passphera_core-0.24.0.dist-info/RECORD,,
|
@@ -1,12 +0,0 @@
|
|
1
|
-
passphera_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
passphera_core/entities.py,sha256=neT794ZP5iTPyn_xfZ0uUctvLhlSlvwepsic6ZYEPeA,7278
|
3
|
-
passphera_core/exceptions.py,sha256=Xir2lYIH7QYHfjDQu8WJ9qIhCvP-mYcPWYN2LbbbDj8,640
|
4
|
-
passphera_core/interfaces.py,sha256=DpHFh_vnamORf69P1dwLrZ8AYZPcYIol0Lq_VKRBkXc,855
|
5
|
-
passphera_core/utilities.py,sha256=n7cAVox-yGd60595RjLvrGKSGqFQRm279YqKS3-R1X0,748
|
6
|
-
passphera_core/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
passphera_core/application/generator.py,sha256=piAI5EXl-r5dTANFlabDp840g9XyM81DSTRLWpDJTnc,2456
|
8
|
-
passphera_core/application/password.py,sha256=9wsSz3uMWEZCgfnX5V7WYiWp2OqjSmsn6OSWK4HIIfo,2876
|
9
|
-
passphera_core-0.22.0.dist-info/METADATA,sha256=BkXQ3Xqyn13LBBKKz261dFFrfmyNaSe9yQfNgDLMfto,868
|
10
|
-
passphera_core-0.22.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
11
|
-
passphera_core-0.22.0.dist-info/top_level.txt,sha256=aDUX2iWGOyfzyf6XakLWTbgeWqNrypMHO074Qratyds,15
|
12
|
-
passphera_core-0.22.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|