Backup/DataCertificate.cs

(开头部分) 8KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Security.Cryptography.X509Certificates;
using System.IO;

namespace WindowsFormsAppPfs
{
    public sealed class DataCertificate   
    {  
        #region 生成证书   
        /// <summary>   
        /// 根据指定的证书名和makecert全路径生成证书(包含公钥和私钥,并保存在MY存储区)   
        /// </summary>   
        /// <param name="subjectName"></param>   
        /// <param name="makecertPath"></param>   
        /// <returns></returns>   
        public static bool CreateCertWithPrivateKey(string subjectName, string makecertPath)   
        {   
            subjectName = "CN=" + subjectName;   
            string param = " -pe -ss my -n \"" + subjectName + "\" ";   
            try  
            {   
                Process p = Process.Start(makecertPath, param);   
                p.WaitForExit();   
                p.Close();   
            }   
            catch (Exception e)   
            {   
                throw e;   
            }   
            return true;   
        }  
        #endregion  
 
        #region 文件导入导出   
        /// <summary>   
        /// 从WINDOWS证书存储区的个人MY区找到主题为subjectName的证书,   
        /// 并导出为pfx文件,同时为其指定一个密码   
        /// 并将证书从个人区删除(如果isDelFromstor为true)   
        /// </summary>   
        /// <param name="subjectName">证书主题,不包含CN=</param>   
        /// <param name="pfxFileName">pfx文件名</param>   
        /// <param name="password">pfx文件密码</param>   
        /// <param name="isDelFromStore">是否从存储区删除</param>   
        /// <returns></returns>   
        public static bool ExportToPfxFile(string subjectName, string pfxFileName,   
            string password, bool isDelFromStore)   
        {   
            subjectName = "CN=" + subjectName;   
            X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);   
            store.Open(OpenFlags.ReadWrite);   
            X509Certificate2Collection storecollection = (X509Certificate2Collection)store.Certificates;   
            foreach (X509Certificate2 x509 in storecollection)   
            {   
                if (x509.Subject == subjectName)   
                {   
                    Debug.Print(string.Format("certificate name: {0}", x509.Subject));   
  
后面还有 140 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。