6

Potrzebuję wykonać następujący kod działa na WP8, problem polega na tym, że nie ma klasy X509Certificate2 na WP8, Próbowałem używać dmuchanego zamku apis, ale tak naprawdę nie udało mi się go zrozumieć na zewnątrz.Certyfikat X509Certyfikat2 do X509 na Windows Phone 8

Czy istnieje sposób, aby ten kod działał na WP8?

private string InitAuth(X509Certificate2 certificate, string systemId, string username, string password) 
    { 
     byte[] plainBytes = Encoding.UTF8.GetBytes(password); 
     var cipherB64 = string.Empty; 
     using (var rsa = (RSACryptoServiceProvider)certificate.PublicKey.Key) 
      cipherB64 = systemId + "^" + username + "^" + Convert.ToBase64String(rsa.Encrypt(plainBytes, true)); 

     return cipherB64; 
    } 

Odpowiedz

1

Nie możesz po prostu obejść dostępności X509Certificate2?

private string InitAuth(X509Certificate certificate, string systemId, string username, string password) 
    { 
     byte[] plainBytes = Encoding.UTF8.GetBytes(password); 
     var cipherB64 = string.Empty; 

     //Create a new instance of RSACryptoServiceProvider. 
     RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); 

     //Create a new instance of RSAParameters. 
     RSAParameters RSAKeyInfo = new RSAParameters(); 

     //Set RSAKeyInfo to the public key values. 
     RSAKeyInfo.Modulus = certificate.getPublicKey(); 
     RSAKeyInfo.Exponent = new byte[3] {1,0,1};; 

     //Import key parameters into RSA. 
     RSA.ImportParameters(RSAKeyInfo); 

     using (RSA) 
      cipherB64 = systemId + "^" + username + "^" + Convert.ToBase64String(RSA.Encrypt(plainBytes, true)); 

     return cipherB64; 
    } 

Ujawnienie: Nie próbowałem powyższy kod, bo nie masz C# Runtime Environment do mojej dyspozycji obecnie.

+0

Spróbuję, dzięki – jjdev80

+0

@MaryJ. czy na to spojrzałeś? – likeitlikeit

+0

Nie, przepraszam, nie miałem czasu, aby to jeszcze zrobić. – jjdev80

Powiązane problemy