Insérer un certificat dans le magasin courant VB.NET 200x
Dans le cadre du développement de notre projet CUTBLOCK nous avons été amené à manipuler des certificats X509.
le certficat est généré sur un serveur WEB (en PHP/OPENSSL chez nous) puis transmis au travers d'un Web service WSDL pour être intégré sur le poste utilisateur.
Voici un petit bout de code (VB.Net 2008) permettant de charger le certificat dans le magasin courant.
Suite:
les déclarations
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Permissions
Imports System.Text
Imports System.IO
Dim cert As X509Certificate2
Dim store As New X509Store(StoreName.My, StoreLocation.CurrentUser)
je récupère le résultat de mon Web service dans une variable
Dim MonCertificat() As Byte
MonCertificat = Convert.FromBase64String(Inscription.MonCertificat)
et voici le code de chargement du certificat
Try
' stocke temporairement le certificat dans un fichier
FichierP12Temp = Path.GetTempFileName()
Fp12 = New FileStream(FichierP12Temp, FileMode.Create)
Fp12.Write(MonCertificat, 0, MonCertificat.Length)
Fp12.Close()
' ajoute le certificat au magasin WINDOWS
cert = New X509Certificate2(FichierP12Temp, Motdepasse_Certificat , X509KeyStorageFlags.Exportable + X509KeyStorageFlags.UserKeySet)
store.Open(OpenFlags.ReadWrite)
store.Add(cert)
store.Close()
' supprime le fichier temporaire
File.Delete(FichierP12Temp)
Catch ex As Exception
MsgBox(Tr("Erreur lors la sauvegarde du certificat"), , Tr("Erreur"))
Exit Sub
End Try
voila notre certificat chargé dans le magasin de l'utilisateur courant.

02.09.08 23:33:38,