Compartir a través de


Cómo: Crear un par de claves privada y pública

Actualización: noviembre 2007

Para firmar un ensamblado con un nombre seguro, es necesario tener un par de claves publica y privada. Este par de claves criptográficas pública y privada se usa al realizar la compilación para crear un ensamblado con nombre seguro. Se puede generar un par de claves utilizando la herramienta Nombre seguro (Sn.exe). Normalmente, los archivos de par de claves tienen la extensión .snk.

Nota:

En Visual Studio 2005, los entornos de desarrollo integrado (IDE) de C#, Visual Basic y Visual J# le permiten generar pares de claves y firmar ensamblados sin necesidad de crear un par de claves mediante Sn.exe. Estos IDE disponen de una ficha Firma en el Diseñador de proyectos. El IDE de Visual C++ le permite especificar la ubicación de un archivo de clave existente en la página de propiedades Avanzadas, en la sección Vinculador de la sección Propiedades de configuración de la ventana Páginas de propiedades. El uso de AssemblyKeyFileAttribute para identificar los pares del archivo de clave ha quedado en desuso en Visual Studio 2005.

Para crear un par de claves

  • En el símbolo del sistema, escriba el siguiente comando:

    sn –k <nombre de archivo>

    En este comando, nombre de archivo es el nombre del archivo de salida que contiene el par de claves.

En el siguiente ejemplo se crea un par de claves denominado sgKey.snk.

sn -k sgKey.snk

Si se piensa retrasar la firma de un ensamblado y se controla todo el par de claves (lo que es improbable aparte de los escenarios de pruebas), se pueden usar los comandos siguientes para generar un par de claves y, después, extraer de él la clave pública y ponerla en otro archivo. Primero, cree el par de claves:

sn -k keypair.snk
  • Después, extraiga la clave pública del par de claves y cópiela en otro archivo:
sn -p keypair.snk public.snk
  • Una vez que haya creado el par de claves, debe ubicar el archivo donde las herramientas de firma de nombre seguro lo puedan encontrar.

Al firmar un ensamblado con un nombre seguro, la herramienta Assembly Linker (Al.exe) busca el archivo de clave en relación con el directorio actual y el directorio de salida. Si se usan compiladores de la línea de comandos, no hay más que copiar la clave en el directorio actual que contenga los módulos de código.

Si está utilizando una versión anterior de Visual Studio que no cuenta con la ficha Firma en las propiedades de proyecto, la ubicación recomendada del archivo de clave es el directorio del proyecto con el atributo de archivo especificado tal y como se muestra a continuación:

<Assembly: AssemblyKeyFileAttribute("..\..\key.snk")>
[assembly: AssemblyKeyFileAttribute(@"..\..\key.snk")]

Vea también

Otros recursos

Crear y utilizar ensamblados con nombre seguro