Esempio n. 1
0
 private ExportKeyList GetDecryptedFileKeys(EncryptedExportKeyList export)
 {
     try
     {
         X509Certificate2 certificate = KeyManagerHelper.GetInternalCertificate();
         using (RSACryptoServiceProvider provider = (RSACryptoServiceProvider)certificate.PrivateKey)
         {
             byte[] key = EncryptionHelper.RsaDecrypt(Convert.FromBase64String(export.Key), provider);
             byte[] iv = EncryptionHelper.RsaDecrypt(Convert.FromBase64String(export.IV), provider);
             byte[] exportKeysData = EncryptionHelper.AesDecrypt(Convert.FromBase64String(export.ProductKeys), key, iv);
             return Constants.DefaultEncoding.GetString(exportKeysData).FromXml<ExportKeyList>();
         }
     }
     catch (CryptographicException ex)
     {
         ExceptionHandler.HandleException(ex);
         throw new DisException("Exception_GetprivateKeyError");
     }
 }
Esempio n. 2
0
 public static EncryptedExportKeyList EncryptExportFile(string productKeysXml)
 {
     X509Certificate2 certificate = GetInternalCertificate();
     byte[] productKeysData = Constants.DefaultEncoding.GetBytes(productKeysXml);
     byte[] key;
     byte[] iv;
     byte[] encryptedData = EncryptionHelper.AesEncrypt(productKeysData, out key, out iv);
     using (RSACryptoServiceProvider provider = (RSACryptoServiceProvider)certificate.PublicKey.Key)
     {
         EncryptedExportKeyList export = new EncryptedExportKeyList()
         {
             Key = Convert.ToBase64String(EncryptionHelper.RsaEncrypt(key, provider)),
             IV = Convert.ToBase64String(EncryptionHelper.RsaEncrypt(iv, provider)),
             ProductKeys = Convert.ToBase64String(encryptedData)
         };
         return export;
     }
 }