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.