---
title: keystore
slug: develop/es/keystore
docTags: 
createdAt: 2025-03-26T14:45:04.874Z
---

El objeto *almacén de claves&#xA0;*&#x6C;e permite registrar certificados de cliente con el reproductor.

Mientras que los paquetes CA (agregados usando el método `AddCAPackage()` ) son persistentes, los certificados individuales (agregados usando los métodos `AddCACertificate()` y `AddClientCertificate()` ) no lo son; los certificados individuales deben registrarse en la base de datos de certificados después de cada reinicio.

:::hint{type="warning"}
No puede acceder a los certificados que se agregaron al keystore usando JavaScript o BrightScript. Los desarrolladores que quieran usar un certificado con su aplicación Java tendrán que acceder a él directamente desde su aplicación.
:::

**IDL de keystore**

```javascript
interface KeyStore {
    Promise<void> addCaCertificate(String filename);
    Promise<void> addCaPackage(String filename);
    Promise<void> removeCaPackage(String filename);
    Promise<PackageList> getCaPackagesInstalled();
    Promise<void> addClientCertificate(ClientCertificateObject object);
};

interface ClientCertificateObject {
    attribute String certificateFile;
    attribute String passphrase;
    attribute String obfuscatedPassphrase;
};

```

## Creación de objetos

Para crear un objeto *keystore* , primero cargue el módulo brightsign/keystore usando el método require(). Luego cree una instancia de la clase *keystore* .

```javascript
var keystoreClass = require("@brightsign/keystore");
var keystore = new keystoreClass();
```

## KeyStore

Use esta interfaz para agregar certificados a la base de datos de certificados.

**addCaCertificate()**

```javascript
Promise<> addCaCertificate(DOMString filename)
```

Registra el certificado CA especificado en la base de datos de certificados. Los certificados de cliente pueden ser autofirmados o estar firmados usando una entidad emisora de certificados de terceros (Versign, DigiCert, etc.). 

:::hint{type="warning"}
Chromium versión 69 o posterior rechazará los certificados SHA-1. Consulte [esta página](https://www.chromium.org/Home/chromium-security/education/tls/sha-1/) para obtener más información.
:::

**addCaPackage()**

```javascript
Promise<> addCaPackage(DOMString filename)
```

Agrega el archivo de paquete CA especificado a la base de datos de certificados. El nombre del paquete reside en el archivo y no necesita ser el mismo que el nombre del archivo. Consulte la página [roKeyStore](docId\:lbUXtFjN_Z4R_AngLdPhU)*&#xA0;*&#x70;ara obtener más información sobre cómo generar paquetes CA.

:::hint{type="info"}
Intentar modificar un archivo de paquete CA que se ha agregado a la base de datos lo invalidará. Si un paquete se invalida, deberá eliminarse de la base de datos (usando el método `removeCaPackage()` ) y agregarse nuevamente.
:::

**removeCaPackage()**

```javascript
Promise<PackageList> getCaPackagesInstalled()
```

Elimina el paquete CA especificado de la base de datos de certificados. Use el método `getCaPackagesInstalled()` para recuperar una lista de nombres de paquetes en la base de datos.

**getCaPackagesInstalled()**

```javascript
Promise<PackageList> getCaPackagesInstalled()
```

Devuelve una lista de nombres de paquetes CA contenidos en la base de datos de certificados.

**addClientCertificate()**

```javascript
Promise<> addClientCertificate(ClientCertificateObject object)
```

Registra un certificado de cliente .p12 en la base de datos de certificados. 

## ClientCertificateObject

Esta interfaz representa un archivo de certificado .p12.

- `certificateFile` <font color="#6554c0">String</font>: El nombre y la ruta del archivo del certificado de cliente .p12
- `frase de contraseña` <font color="#6554c0">String</font>:  Una frase de contraseña para el certificado de cliente .p12
- `obfuscatedPassphrase` <font color="#6554c0">String</font>: Una frase de contraseña ofuscada para el certificado de cliente .p12

:::hint{type="danger"}
Solo se requiere uno de `obfuscatedPassphrase` y `frase de contraseña` y `obfuscatedPassphrase` tiene prioridad si ambos están presentes. Recomendamos usar `obfuscated_passphrase` en entornos de producción, mientras que `frase de contraseña` debe usarse solo para fines de prueba. Contacte con [support@brightsign.biz](mailto\:support@brightsign.biz) para obtener más información sobre cómo generar una clave para la ofuscación y almacenarla en el reproductor.
:::

## Ejemplo

```javascript
ksf = require('@brightsign/keystore');
k = new ksf()
k.addCaPackage("/storage/sd/example.bsca").then(() => console.log('ok'), () => console.log('failed'))
k.getCaPackagesInstalled().then((pkgs) => console.log(pkgs))
k.removeCaPackage('example').then(() => console.log('ok'), () => console.log('failed'))
```

