Encryptors 2.63__tar.gz → 2.65__tar.gz

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.
Files changed (87) hide show
  1. {encryptors-2.63 → encryptors-2.65}/PKG-INFO +1 -1
  2. {encryptors-2.63 → encryptors-2.65}/setup.py +1 -1
  3. {encryptors-2.63 → encryptors-2.65}/src/Encryptors.egg-info/PKG-INFO +1 -1
  4. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Helpers/JwtTokenHelper.py +5 -5
  5. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Models/TokenClaims.py +1 -0
  6. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Services/JwtAuthTokenService.py +2 -0
  7. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Services/__init__.py +7 -0
  8. {encryptors-2.63 → encryptors-2.65}/README.md +0 -0
  9. {encryptors-2.63 → encryptors-2.65}/setup.cfg +0 -0
  10. {encryptors-2.63 → encryptors-2.65}/src/Encryptors.egg-info/SOURCES.txt +0 -0
  11. {encryptors-2.63 → encryptors-2.65}/src/Encryptors.egg-info/dependency_links.txt +0 -0
  12. {encryptors-2.63 → encryptors-2.65}/src/Encryptors.egg-info/entry_points.txt +0 -0
  13. {encryptors-2.63 → encryptors-2.65}/src/Encryptors.egg-info/requires.txt +0 -0
  14. {encryptors-2.63 → encryptors-2.65}/src/Encryptors.egg-info/top_level.txt +0 -0
  15. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Cache/Redis.py +0 -0
  16. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Cache/__init__.py +0 -0
  17. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Cli/__init__.py +0 -0
  18. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Constants/Constant.py +0 -0
  19. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Constants/Message.py +0 -0
  20. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Constants/__init__.py +0 -0
  21. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Context/__init__.py +0 -0
  22. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Database/BaseRepository.py +0 -0
  23. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Database/Connection.py +0 -0
  24. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Database/__init__.py +0 -0
  25. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Decorators/Grpc.py +0 -0
  26. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Decorators/Retry.py +0 -0
  27. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Decorators/SecureResolver.py +0 -0
  28. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Decorators/__init__.py +0 -0
  29. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Encryptor/Aes.py +0 -0
  30. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Encryptor/Argon2.py +0 -0
  31. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Encryptor/Bcrypt.py +0 -0
  32. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Encryptor/Jwt.py +0 -0
  33. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Encryptor/Rsa.py +0 -0
  34. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Encryptor/Sha512.py +0 -0
  35. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Encryptor/__init__.py +0 -0
  36. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Enums/AuditType.py +0 -0
  37. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Enums/ErrorSource.py +0 -0
  38. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Enums/FileType.py +0 -0
  39. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Enums/GrahpqlOperation.py +0 -0
  40. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Enums/Profile.py +0 -0
  41. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Enums/ResultType.py +0 -0
  42. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Enums/StatusCode.py +0 -0
  43. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Enums/__init__.py +0 -0
  44. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Exception/ControlledException.py +0 -0
  45. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Exception/__init__.py +0 -0
  46. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Helpers/AuditHelper.py +0 -0
  47. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Helpers/AuditQueue.py +0 -0
  48. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Helpers/AuthTokenProcessor.py +0 -0
  49. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Helpers/AzureClassifier.py +0 -0
  50. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Helpers/GrpcConnection.py +0 -0
  51. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Helpers/Resilience.py +0 -0
  52. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Helpers/ResponseDecryptor.py +0 -0
  53. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Helpers/__init__.py +0 -0
  54. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Http/APIClient.py +0 -0
  55. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Http/__init__.py +0 -0
  56. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Messaging/AzureServiceBus.py +0 -0
  57. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Messaging/Kafka.py +0 -0
  58. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Messaging/RabbitMQ.py +0 -0
  59. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Messaging/__init__.py +0 -0
  60. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Models/ApiResponse.py +0 -0
  61. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Models/AuditContext.py +0 -0
  62. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Models/Graphql.py +0 -0
  63. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Models/Notification.py +0 -0
  64. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Models/Response.py +0 -0
  65. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Models/Token.py +0 -0
  66. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Models/__init__.py +0 -0
  67. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Secrets/AzureKeyVaultProvider.py +0 -0
  68. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Secrets/__init__.py +0 -0
  69. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Services/ServiceBusAuditEmitter.py +0 -0
  70. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Services/WebsocketClient.py +0 -0
  71. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Storage/AzureBlobStorage.py +0 -0
  72. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Storage/S3Storage.py +0 -0
  73. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Storage/__init__.py +0 -0
  74. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/CaseConverter.py +0 -0
  75. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/CodeGenerator.py +0 -0
  76. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/DataNormalizer.py +0 -0
  77. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/DataUtils.py +0 -0
  78. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/DateUtils.py +0 -0
  79. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/FileMetaData.py +0 -0
  80. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/HashValidator.py +0 -0
  81. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/Mapper.py +0 -0
  82. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/PasswordGenerator.py +0 -0
  83. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/QueryGenerator.py +0 -0
  84. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/RsaUtils.py +0 -0
  85. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/TextProcessor.py +0 -0
  86. {encryptors-2.63 → encryptors-2.65}/src/Osdental/Utils/__init__.py +0 -0
  87. {encryptors-2.63 → encryptors-2.65}/src/Osdental/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Encryptors
3
- Version: 2.63
3
+ Version: 2.65
4
4
  Summary: End-to-end algorithm library
5
5
  Author: OSDental LLC
6
6
  Author-email: support@osdental.ai
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
  # ANDERSON REVISAR EL CACHE LOCAL DEL KEYVAULT PARA VALIDAR SI FUNCIONA
3
3
  setup(
4
4
  name="Encryptors",
5
- version="2.63",
5
+ version="2.65",
6
6
  author="OSDental LLC",
7
7
  author_email="support@osdental.ai",
8
8
  description="End-to-end algorithm library",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Encryptors
3
- Version: 2.63
3
+ Version: 2.65
4
4
  Summary: End-to-end algorithm library
5
5
  Author: OSDental LLC
6
6
  Author-email: support@osdental.ai
@@ -45,20 +45,20 @@ class JwtTokenHelper:
45
45
  }
46
46
 
47
47
  # 1. Firmar → JWS (inner JWT)
48
- signed: bytes = jwt.encode(
48
+ signed: str = jwt.encode(
49
49
  header={"alg": "RS256", "typ": "JWT"},
50
50
  claims=payload,
51
51
  key=self._private_key,
52
52
  )
53
53
 
54
54
  # 2. Encriptar → JWE (outer token)
55
- encrypted: bytes = jwe.encrypt_compact(
55
+ encrypted: str = jwe.encrypt_compact(
56
56
  protected={"alg": "RSA-OAEP", "enc": "A256CBC-HS512", "cty": "JWT"},
57
- plaintext=signed, # el JWT firmado es el payload del JWE
57
+ plaintext=signed.encode(), # el JWT firmado es el payload del JWE
58
58
  public_key=self._public_key,
59
59
  )
60
60
 
61
- return encrypted.decode()
61
+ return encrypted
62
62
 
63
63
  def get_claims_ignore_expiration(
64
64
  self,
@@ -107,7 +107,7 @@ class JwtTokenHelper:
107
107
  try:
108
108
  # --- Paso 1: desencriptar JWE ---
109
109
  decrypted = jwe.decrypt_compact(
110
- token=token.encode(),
110
+ value=token.encode(),
111
111
  private_key=self._private_key,
112
112
  algorithms=self._jwe_algorithms,
113
113
  )
@@ -37,6 +37,7 @@ class UserTokenClaims(BaseClaims):
37
37
  user_full_name: str
38
38
  abbreviation: str
39
39
  aes_key_auth: str
40
+ exp: Optional[int] = 0
40
41
 
41
42
 
42
43
  @dataclass(frozen=True, slots=True)
@@ -140,6 +140,7 @@ class JwtAuthTokenService(IAuthTokenService):
140
140
  user_full_name=claims["user_full_name"],
141
141
  abbreviation=claims["abbreviation"],
142
142
  aes_key_auth=claims["aes_key_auth"],
143
+ exp=claims["exp"],
143
144
  )
144
145
 
145
146
 
@@ -165,4 +166,5 @@ class JwtAuthTokenService(IAuthTokenService):
165
166
  user_full_name=claims["user_full_name"],
166
167
  abbreviation=claims["abbreviation"],
167
168
  aes_key_auth=claims["aes_key_auth"],
169
+ exp=claims["exp"],
168
170
  )
@@ -47,6 +47,13 @@ class IAuthTokenService(ABC):
47
47
  ) -> ActionTokenClaims:
48
48
  pass
49
49
 
50
+ @abstractmethod
51
+ async def validate_token_for_refresh(
52
+ self,
53
+ token: str,
54
+ ) -> UserTokenClaims:
55
+ pass
56
+
50
57
 
51
58
  class IAuditEmitter(Protocol):
52
59
  async def process(self, payload: Dict[str, Any]) -> None:
File without changes
File without changes