Visión General
La API de Imagina Energía proporciona un endpoint para obtener su clave pública RSA. Esta clave permite a los clientes cifrar información sensible antes de enviarla a través de la red, garantizando que solo el servidor pueda descifrarla.
Obtener la Clave
cURL
curl -X GET https://pre-webhooks.imaginaenergia.com/public_key
La respuesta contiene la clave en formato PEM dentro de un objeto JSON:
JSON
{
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhk...\n-----END PUBLIC KEY-----"
}
Ejemplo de Cifrado (Python)
Para cifrar un secreto usando la clave obtenida:
Python
from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.primitives.asymmetric import padding
import base64
def encrypt_secret(public_key_pem, secret):
# Cargar la clave pública
public_key = serialization.load_pem_public_key(public_key_pem.encode())
# Cifrar el secreto
encrypted = public_key.encrypt(
secret.encode(),
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
# Codificar en base64 para envío
return base64.b64encode(encrypted).decode()
📌 Nota importante
Asegúrate de guardar la clave pública y no solicitarla en cada petición para optimizar el rendimiento.
Sin embargo, se recomienda refrescarla periódicamente.