2017-07-09 4 views
0

Je veux télécharger un fichier texte qui contient ma clé privée pour enregistrer dans le conteneur de clés sur l'hôte Web.système ne peut pas trouver l'exception spécifiée par fichier, lorsque je veux enregistrer clé RSA dans le conteneur clé

J'utilise ci-dessous pour enregistrer les clés:

var pk = Encoding.UTF8.GetString(fuPrivateKey.FileBytes); 
CspParameters csp = new CspParameters(); 
csp.KeyContainerName = "Name"; 
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048, csp); 
rsa.FromXmlString(pk); 
Message = "Key Saved"; 

et ce pour le chiffrement et le déchiffrement:

CspParameters csp = new CspParameters() 
{ 
     KeyContainerName = "Name", 
     Flags = CspProviderFlags.UseExistingKey 
}; 
     RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048, csp); 

Je n'ai pas localhost mais je m'y suis ci-dessous erreur dans hébergeur quand je voulez enregistrer les clés:

Détails de l'exception: System.Security.Cryptography.CryptographicException: Le système ne trouve pas le fichier spécifié.

J'ai ensuite utilisé csp.Flags = CspProviderFlags.UseMachineKeyStore; tout en stockant les clés et mon problème est résolu, mais quand je veux voir si la clé est existe comme ci-dessous, il semble que exsit ne marche pas. (Et problème dans le cryptage et le décryptage)

Comment Devrais-je utiliser un drapeau d'une manière ou d'une autre pour résoudre mon problème?

Répondre

0

J'utilisé CspParameters avec le drapeau ci-dessous quand je veux stocker les clés:

Flags = CspProviderFlags.UseMachineKeyStore; 

et le drapeau ci-dessous quand je veux chiffrer, déchiffrer et contrôle existant des clés:

Flags = CspProviderFlags.UseExistingKey|CspProviderFlags.UseMachineKeyStore;