Necesitamos proporcionar una clave de licencia a los clientes para nuestra aplicación. La licencia real es XML, pero necesitamos cifrarla y luego, en nuestro programa, descifrarla. Creo que es lo siguiente, pero estoy pidiendo que me asegure de que no me esté perdiendo algo (la información a continuación se actualiza desde el cifrado hasta la firma según los comentarios a continuación):
- En nuestro servidor, cree el XML para la clave. La clave está en el contenedor de claves en el servidor.
- En nuestro servidor, firme el XML con nuestra clave privada.
- UUEncode la licencia encriptada para que se envíe por correo electrónico.
- Envíe la licencia por correo electrónico a nuestro cliente.
- El cliente coloca la licencia en su archivo app.exe.config.
- La aplicación lee la licencia del archivo de configuración.
- La aplicación codifica UUD la licencia.
- La aplicación verifica la firma usando nuestra clave pública. La clave pública está incorporada en el programa.
- Ahora tenemos el XML y usamos las propiedades de la licencia.
¿Es esta la mejor manera de hacer esto? Si no es así, ¿qué enfoque debemos tomar?
En caso afirmativo, ¿qué API .NET deberíamos usar para esto y hay enlaces al código de ejemplo?
Y un gigante gracias a todos los que me acompañaron en esto.