Se adapto el codigo para que funcione con los elementos de credentials
This commit is contained in:
@@ -24,10 +24,6 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
from controllers.XMLController import xml_controller
|
||||
|
||||
def load_cert_base64(cert_path: str) -> str:
|
||||
with open(cert_path, 'rb') as cert_file:
|
||||
cert_data = cert_file.read()
|
||||
return base64.b64encode(cert_data).decode()
|
||||
|
||||
def sign_chain_original(key_path: str, password: str, cadena_original: str) -> str:
|
||||
with open(key_path, 'rb') as key_file:
|
||||
@@ -44,7 +40,6 @@ def sign_chain_original(key_path: str, password: str, cadena_original: str) -> s
|
||||
|
||||
return base64.b64encode(signature).decode()
|
||||
|
||||
|
||||
def validate_pedimento_data(response_service: Dict[str, Any], credenciales: Dict[str, Any]) -> tuple: # Testeado
|
||||
"""
|
||||
Valida y extrae los datos necesarios para la petición SOAP.
|
||||
@@ -934,8 +929,21 @@ async def get_soap_cove(credenciales, response_service, soap_controller, cove, i
|
||||
cadena_original = f"|{username}|{cove['numero_cove']}|"
|
||||
|
||||
# Obtener certificado base64 y firma
|
||||
certificado = load_cert_base64(settings.CERT_PATH)
|
||||
firma = sign_chain_original(settings.KEY_PATH, settings.KEY_PASSWORD, cadena_original)
|
||||
cer = rest_controller.get_cer(credenciales['id'])
|
||||
certificado = base64.b64encode(cer).decode('utf-8')
|
||||
|
||||
# Obtener la key como binario y guardarla en un archivo temporal
|
||||
import tempfile
|
||||
key_bytes = rest_controller.get_key(credenciales['id'])
|
||||
with tempfile.NamedTemporaryFile(delete=False) as tmp_key_file:
|
||||
tmp_key_file.write(key_bytes)
|
||||
tmp_key_path = tmp_key_file.name
|
||||
|
||||
# Usar la ruta temporal para firmar
|
||||
firma = sign_chain_original(tmp_key_path, credenciales['efirma'], cadena_original)
|
||||
|
||||
# Eliminar el archivo temporal después de firmar
|
||||
os.remove(tmp_key_path)
|
||||
|
||||
logger.info(f"Datos para SOAP - Usuario: {username}, Aduana: {aduana}, Patente: {patente}, Pedimento: {pedimento}, Numero Operacion: {numero_operacion}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user