# Guía para generar claves API para OCI

Para utilizar la API de Oracle Cloud Infrastructure (OCI), necesitas generar un par de claves RSA
y añadir la clave pública a tu usuario en la consola de OCI.

## 1. Generar el par de claves RSA

### En sistemas Unix/Linux/macOS

```bash
# Crear directorio para las claves si no existe
mkdir -p ~/.oci

# Generar clave privada
openssl genrsa -out ~/.oci/oci_api_key.pem 2048

# Cambiar permisos para proteger la clave privada
chmod 600 ~/.oci/oci_api_key.pem

# Generar clave pública
openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem
```

### En Windows (usando Git Bash o similar)

```bash
# Crear directorio para las claves
mkdir -p $HOME/.oci

# Generar clave privada
openssl genrsa -out $HOME/.oci/oci_api_key.pem 2048

# Generar clave pública
openssl rsa -pubout -in $HOME/.oci/oci_api_key.pem -out $HOME/.oci/oci_api_key_public.pem
```

## 2. Calcular el fingerprint

```bash
openssl rsa -pubout -outform DER -in ~/.oci/oci_api_key.pem | openssl md5 -c
```

## 3. Añadir la clave pública a tu cuenta OCI

1. Inicia sesión en la consola de OCI
2. Navega a tu perfil de usuario (esquina superior derecha -> Icono de usuario -> Mi perfil)
3. Haz clic en "API Keys" en el menú lateral
4. Haz clic en "Add API Key"
5. Selecciona "Paste Public Key" y pega el contenido del archivo `~/.oci/oci_api_key_public.pem`
6. Haz clic en "Add"

La consola te mostrará la configuración que debes añadir a tu archivo `~/.oci/config`. 
Copia esta información para usarla en la configuración del cliente OCI.

## 4. Configurar el archivo config

Crea o edita el archivo `~/.oci/config` con la información proporcionada por la consola OCI:

```
[DEFAULT]
user=ocid1.user.oc1..aaaaaaaa...
fingerprint=11:22:33:44:55:66:77:88:99:00:aa:bb:cc:dd:ee:ff
tenancy=ocid1.tenancy.oc1..aaaaaaaa...
region=us-ashburn-1
key_file=~/.oci/oci_api_key.pem
```

## 5. Probar la configuración

Puedes probar que la configuración es correcta usando la CLI de OCI:

```bash
# Instalar OCI CLI si aún no está instalada
pip install oci-cli

# Probar la configuración
oci os ns get
```

Si todo está configurado correctamente, este comando devolverá el namespace de Object Storage de tu cuenta OCI.
