> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/nfc-wallet-sdk-android/es/help/knowledge-base/compute-the-application-binding-key.md).

# Calcular la clave de vinculación de la aplicación

## Resumen

En **NFC Wallet**, Android **clave de vinculación de la aplicación** es el `digest SHA-256 de la clave pública del firmante`.

Es el hash SHA-256 de la clave pública del firmante **clave pública** extraída del certificado de firma de la aplicación.

Recupera el `digest SHA-256 de la clave pública del firmante` usando una de las opciones a continuación, luego comparte el valor hexadecimal resultante con el **equipo de entrega de Thales.**

Esto restringe el uso de NFC Wallet a un **aplicación de cartera digital**.

{% hint style="info" %}
Es posible que debas compartir varios valores si tu configuración de firma difiere según el entorno (por ejemplo: **PreProd**, **Producción**).
{% endhint %}

Comparte el hash exactamente como se muestra. No agregues separadores ni espacios.

Elige la opción que coincida con tu configuración de firma. Consulta [firma de la aplicación Android](https://developer.android.com/studio/publish/app-signing) para contexto.

## Opción 1: Inspeccionar el paquete de aplicación firmado

Esta es la opción más sencilla. Necesitas acceso al APK firmado en una estación de trabajo.

Para **Producción**, a menudo instalas la aplicación desde Google Play, luego [extraes el APK de un dispositivo de prueba](https://stackoverflow.com/questions/4032960/how-do-i-get-an-apk-file-from-an-android-device).

También necesitas `apksigner` de las Android SDK Build Tools. Ubicación de ejemplo: `%ANDROID_HOME%\build-tools\33.0.1\`.

Una vez que el paquete de la aplicación esté disponible, su firma puede examinarse con un solo comando. Por ejemplo:

```nushell
apksigner verify -v --print-certs Sample-sandbox-debug.apk
Verifica
Verificado usando el esquema v1 (firma JAR): false
Verificado usando el esquema v2 (APK Signature Scheme v2): true
Verificado usando el esquema v3 (APK Signature Scheme v3): false
Verificado usando el esquema v3.1 (APK Signature Scheme v3.1): false
Verificado usando el esquema v4 (APK Signature Scheme v4): false
Verificado para SourceStamp: false
Número de firmantes: 1
DN del certificado del firmante #1: CN=D1
Digest SHA-256 del certificado del firmante #1: 591411c6efdc32c0a48ebf023583af589a50fd34914b9277377954ecff91b325
Digest SHA-1 del certificado del firmante #1: 2829a0da71747ae11cce49e77a361267f1abf58d
Digest MD5 del certificado del firmante #1: d14c33afe4217372edfa4eea92ede878
Algoritmo de clave del firmante #1: RSA
Tamaño de clave del firmante #1 (bits): 2048
Digest SHA-256 de la clave pública del firmante #1: b8e36f1efe7e4c827aeb390fafbf500d971c7e09a0bb62f84cfbaf8e0c770496
Digest SHA-1 de la clave pública del firmante #1: 3df52267537eebfed228f704af7ab02e54f47172
Digest MD5 de la clave pública del firmante #1: 97fb0a170b1499956ead185500ea3738
```

Usa el valor de `digest SHA-256 de la clave pública del firmante #1`.

En el ejemplo anterior, comparte:

`b8e36f1efe7e4c827aeb390fafbf500d971c7e09a0bb62f84cfbaf8e0c770496`

## Opción 2: Obtener desde un archivo local de almacén de claves Java

Los ejemplos a continuación usan un **PreProd** almacén de claves de Thales incluido con la Training App.

Usa tus propias claves de firma para **Sandbox**, **PreProd**, y **Producción**.

### Paso 1: Inspeccionar el archivo del almacén de claves

Usando una [herramienta Java keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html) utilidad, puedes inspeccionar el archivo del almacén de claves de la siguiente manera:

```nushell
keytool -v -list -keystore <nombre del archivo del almacén de claves>
```

Ejemplo:

<figure><img src="/files/152ecd9e26289468c73803dc67696ecfa8974857" alt=""><figcaption><p>Ejemplo: <code>keytool -list</code> salida para el almacén de claves</p></figcaption></figure>

### Paso 2: Extraer el certificado de clave pública

La herramienta Java keytool se usa nuevamente para extraer un certificado de clave pública para la entrada de clave específica identificada por el alias.

Comando:

```nushell
keytool -export -alias <alias de clave> -keystore <nombre del archivo del almacén de claves> -rfc -file <nombre del archivo de certificado de salida>
```

Ejemplo:

```nushell
c:\Temp>keytool -export -alias gto -keystore release.keystore -rfc -file public.cert
Introduce la contraseña del almacén de claves:
Certificado guardado en el archivo <public.cert>
```

### Paso 3: Obtener el hash

Si Thales proporcionó `PKPinGenerator.jar`, úsalo para generar el hash de la clave pública.

Comando:

```nushell
java -jar PKPinGenerator.jar <nombre del archivo de certificado de salida del paso anterior>
```

Ejemplo:

```sh
c:\Temp>java -jar PKPinGenerator.jar public.cert
**************************************************
** Generador de hash de clave pública **
**************************************************

Hash de clave pública #1: E7F85A18D065DF41A3DD59ECB5FF5807CACABAE8DFACCDE12DB24BD658299C54
```

Comparte el hash que aparece en la salida.

En este ejemplo:

`E7F85A18D065DF41A3DD59ECB5FF5807CACABAE8DFACCDE12DB24BD658299C54`

## Opción 3: Obtener desde el certificado de firma de la app de Google Play

**Paso 1: Descargar el certificado desde Google Play Console**

<figure><img src="/files/44cf82a78f6bba17241f60f8f251538811f52d48" alt=""><figcaption><p>Descarga el certificado de firma de la app desde Google Play Console</p></figcaption></figure>

**Paso 2: Extraer la clave pública y su hash**

Hay varias maneras de lograr el mismo resultado, pero se recomienda usar la siguiente secuencia de comandos utilizando [OpenSSL](https://www.openssl.org/):

```sh
openssl x509 -in deployment_cert.der -inform DER -out deployment_cert.crt
openssl x509 -noout -in deployment_cert.crt -pubkey | openssl asn1parse -noout -inform pem -out deployment_cert.key
openssl dgst -sha256 -hex deployment_cert.key
SHA256(deployment_cert.key)= [hash de la clave pública para compartir con Thales]
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.payments.thalescloud.io/nfc-wallet-sdk-android/es/help/knowledge-base/compute-the-application-binding-key.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
