# VSSLInfo

Esta clase representa la conexión segura con el servidor y permite obtener información sobre el estado de la conexión y el certificado utilizado.

La clase [VApp](https://doc.velneo.com/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vapp) nos permite obtener con ayuda de la función correspondiente acceso a esta información:

```javascript
theApp.sslInfo();
```

## Indice de funciones

### **Generales**

VSSLCertificate [peerCertificateChain](#peercertificatechain)( nCertificate )

Number [peerCertificateChainCount](#peercertificatechaincount)()

VSSLSessionCipher [sessionCipher](#sessioncipher)()

Array [sslErrors](#sslerrors)()

## Documentación de funciones

### Funciones generales

#### VSSLCertificate peerCertificateChain( nCertificate ) <a href="#peercertificatechain" id="peercertificatechain"></a>

Devuelve un objeto de la clase [VSSLCertificate](https://doc.velneo.com/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vsslcertificate) que contiene la información acerca del certificado que indicamos como parámetro.

Parámetros:

* nCertificado: entero que determina la posición del certificado en la cadena de certificados.

#### Number peerCertificateChainCount() <a href="#peercertificatechaincount" id="peercertificatechaincount"></a>

Devuelve el número de certificados que componen la cadena de certificados correspondientes a la conexión.

#### VSSLSessionCipher sessionCipher() <a href="#sessioncipher" id="sessioncipher"></a>

Devuelve un objeto de la clase [VSSLSessionCipher](https://doc.velneo.com/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vsslsessioncipher) que nos permite acceder a la información sobre la conexión.

#### Array sslErrors() <a href="#sslerrors" id="sslerrors"></a>

Devuelve un array de cadenas con los textos de mensaje correspondientes a los errores encontrados al establecer la conexión segura.

## Ejemplos

### Obtener información de la conexión segura TLS/SSL en curso

```javascript
var sslInfo = theApp.sslInfo();
var szSslInfo ="No TLS/SSL";

if ( sslInfo )
{
    szSslInfo ="Conexión TLS/SSL: ";
    var sslSession = sslInfo.sessionCipher();
    var separador = "\n";

    if ( !sslSession.isNull() )
    {

        szSslInfo += sslSession.authenticationMethod() + separador;
        szSslInfo += sslSession.encryptionMethod() + separador;
        szSslInfo += sslSession.isNull() + separador;
        szSslInfo += sslSession.keyExchangeMethod() + separador;
        szSslInfo += sslSession.name() + separador;
        szSslInfo += sslSession.protocolString() + separador;
        szSslInfo += sslSession.supportedBits().toString() + separador;
        szSslInfo += sslSession.usedBits().toString() + separador;
        szSslInfo += sslSession.name() + separador;

        for(var i=0; i < sslInfo.peerCertificateChainCount(); ++i)
        {
            szSslInfo += separador;

            var sslCert = sslInfo.peerCertificateChain(i);

            szSslInfo += sslCert.digest() + separador;
            szSslInfo += sslCert.digest( VApp.Sha1 ) + separador;
            szSslInfo += sslCert.effectiveDate() + separador;
            szSslInfo += sslCert.issuerInfo("O");
        }
    }

     alert(  szSslInfo  );
}
```
