Create

Create(byte[], SecureString)

ينشئCertificateHolder كائن يستخدم مصفوفة بايت من متجر PKCS12 وكلمة المرور الخاصة به.

public static CertificateHolder Create(byte[] certBytes, SecureString password)
معامليكتبوصف
certBytesByte[]صفيف بايت يحتوي على بيانات من شهادة X.509.
passwordSecureStringكلمة المرور المطلوبة للوصول إلى بيانات شهادة X.509.

قيمة الإرجاع

مثال علىCertificateHolder

استثناءات

استثناءحالة
InvalidParameterExceptionألقيت إذاcertBytes يكونباطل
InvalidParameterExceptionألقيت إذاpassword يكونباطل
SecurityExceptionيتم طرحه إذا كان متجر PKCS12 لا يحتوي على أسماء مستعارة
IOExceptionيتم طرحها إذا كانت هناك كلمة مرور خاطئة أو ملف تالف.

أمثلة

يوضح كيفية إنشاء كائنات حامل الشهادات.

// فيما يلي أربع طرق لإنشاء كائنات حامل الشهادات.
// 1 - تحميل ملف PKCS #12 إلى مصفوفة بايت وتطبيق كلمة المرور الخاصة به:
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - قم بتحميل ملف PKCS #12 إلى مصفوفة بايت، ثم قم بتطبيق كلمة مرور آمنة:
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// إذا كانت الشهادة تحتوي على مفاتيح خاصة تتوافق مع الأسماء المستعارة،
// يمكننا استخدام الأسماء المستعارة لجلب المفاتيح الخاصة بها. أولاً، سوف نتحقق من وجود أسماء مستعارة صالحة.
using (FileStream certStream = new FileStream(MyDir + "morzal.pfx", FileMode.Open))
{
    Pkcs12Store pkcs12Store = new Pkcs12StoreBuilder().Build();
    pkcs12Store.Load(certStream, "aw".ToCharArray());
    IEnumerator enumerator = pkcs12Store.Aliases.GetEnumerator();

    while (enumerator.MoveNext())
    {
        if (enumerator.Current != null)
        {
            string currentAlias = enumerator.Current.ToString();
            if (pkcs12Store.IsKeyEntry(currentAlias) && pkcs12Store.GetKey(currentAlias).Key.IsPrivate)
            {
                Console.WriteLine($"Valid alias found: {enumerator.Current}");
            }
        }
    }
}

// 3 - استخدم اسمًا مستعارًا صالحًا:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - قم بتمرير "null" كاسم مستعار لاستخدام أول اسم مستعار متاح يُرجع مفتاحًا خاصًا:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

أنظر أيضا


Create(byte[], string)

ينشئCertificateHolder كائن يستخدم مصفوفة بايت من متجر PKCS12 وكلمة المرور الخاصة به.

public static CertificateHolder Create(byte[] certBytes, string password)
معامليكتبوصف
certBytesByte[]صفيف بايت يحتوي على بيانات من شهادة X.509.
passwordStringكلمة المرور المطلوبة للوصول إلى بيانات شهادة X.509.

قيمة الإرجاع

مثال علىCertificateHolder

استثناءات

استثناءحالة
InvalidParameterExceptionألقيت إذاcertBytes يكونباطل
InvalidParameterExceptionألقيت إذاpassword يكونباطل
SecurityExceptionيتم طرحه إذا كان متجر PKCS12 لا يحتوي على أسماء مستعارة
IOExceptionيتم طرحها إذا كانت هناك كلمة مرور خاطئة أو ملف تالف.

أمثلة

يوضح كيفية إنشاء كائنات حامل الشهادات.

// فيما يلي أربع طرق لإنشاء كائنات حامل الشهادات.
// 1 - تحميل ملف PKCS #12 إلى مصفوفة بايت وتطبيق كلمة المرور الخاصة به:
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - قم بتحميل ملف PKCS #12 إلى مصفوفة بايت، ثم قم بتطبيق كلمة مرور آمنة:
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// إذا كانت الشهادة تحتوي على مفاتيح خاصة تتوافق مع الأسماء المستعارة،
// يمكننا استخدام الأسماء المستعارة لجلب المفاتيح الخاصة بها. أولاً، سوف نتحقق من وجود أسماء مستعارة صالحة.
using (FileStream certStream = new FileStream(MyDir + "morzal.pfx", FileMode.Open))
{
    Pkcs12Store pkcs12Store = new Pkcs12StoreBuilder().Build();
    pkcs12Store.Load(certStream, "aw".ToCharArray());
    IEnumerator enumerator = pkcs12Store.Aliases.GetEnumerator();

    while (enumerator.MoveNext())
    {
        if (enumerator.Current != null)
        {
            string currentAlias = enumerator.Current.ToString();
            if (pkcs12Store.IsKeyEntry(currentAlias) && pkcs12Store.GetKey(currentAlias).Key.IsPrivate)
            {
                Console.WriteLine($"Valid alias found: {enumerator.Current}");
            }
        }
    }
}

// 3 - استخدم اسمًا مستعارًا صالحًا:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - قم بتمرير "null" كاسم مستعار لاستخدام أول اسم مستعار متاح يُرجع مفتاحًا خاصًا:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

أنظر أيضا


Create(string, string)

ينشئCertificateHolder كائن يستخدم المسار إلى متجر PKCS12 وكلمة المرور الخاصة به.

public static CertificateHolder Create(string fileName, string password)
معامليكتبوصف
fileNameStringاسم ملف الشهادة.
passwordStringكلمة المرور المطلوبة للوصول إلى بيانات شهادة X.509.

قيمة الإرجاع

مثال علىCertificateHolder

استثناءات

استثناءحالة
InvalidParameterExceptionألقيت إذاfileName يكونباطل
InvalidParameterExceptionألقيت إذاpassword يكونباطل
SecurityExceptionيتم طرحه إذا كان متجر PKCS12 لا يحتوي على أسماء مستعارة
IOExceptionيتم طرحها إذا كانت هناك كلمة مرور خاطئة أو ملف تالف.

أمثلة

يوضح كيفية توقيع المستندات رقميًا.

// أنشئ شهادة X.509 من متجر PKCS#12، والتي يجب أن تحتوي على مفتاح خاص.
CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

// قم بإنشاء تعليق وتاريخ سيتم تطبيقه مع توقيعنا الرقمي الجديد.
SignOptions signOptions = new SignOptions
{
    Comments = "My comment", 
    SignTime = DateTime.Now
};

// خذ مستندًا غير موقع من نظام الملفات المحلي عبر دفق الملفات،
// ثم قم بإنشاء نسخة موقعة منه يحددها اسم ملف دفق ملف الإخراج.
using (Stream streamIn = new FileStream(MyDir + "Document.docx", FileMode.Open))
{
    using (Stream streamOut = new FileStream(ArtifactsDir + "DigitalSignatureUtil.SignDocument.docx", FileMode.OpenOrCreate))
    {
        DigitalSignatureUtil.Sign(streamIn, streamOut, certificateHolder, signOptions);
    }
}

أنظر أيضا


Create(string, string, string)

ينشئCertificateHolder كائن يستخدم المسار إلى متجر PKCS12 وكلمة المرور الخاصة به والاسم المستعار باستخدام المفتاح الخاص والشهادة التي سيتم العثور عليها.

public static CertificateHolder Create(string fileName, string password, string alias)
معامليكتبوصف
fileNameStringاسم ملف الشهادة.
passwordStringكلمة المرور المطلوبة للوصول إلى بيانات شهادة X.509.
aliasStringالاسم المستعار المرتبط بالشهادة ومفتاحها الخاص

قيمة الإرجاع

مثال علىCertificateHolder

استثناءات

استثناءحالة
InvalidParameterExceptionألقيت إذاfileName يكونباطل
InvalidParameterExceptionألقيت إذاpassword يكونباطل
SecurityExceptionيتم طرحه إذا كان متجر PKCS12 لا يحتوي على أسماء مستعارة
IOExceptionيتم طرحها إذا كانت هناك كلمة مرور خاطئة أو ملف تالف.
SecurityExceptionيتم طرحه إذا لم يكن هناك مفتاح خاص بالاسم المستعار المحدد

أمثلة

يوضح كيفية إنشاء كائنات حامل الشهادات.

// فيما يلي أربع طرق لإنشاء كائنات حامل الشهادات.
// 1 - تحميل ملف PKCS #12 إلى مصفوفة بايت وتطبيق كلمة المرور الخاصة به:
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - قم بتحميل ملف PKCS #12 إلى مصفوفة بايت، ثم قم بتطبيق كلمة مرور آمنة:
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// إذا كانت الشهادة تحتوي على مفاتيح خاصة تتوافق مع الأسماء المستعارة،
// يمكننا استخدام الأسماء المستعارة لجلب المفاتيح الخاصة بها. أولاً، سوف نتحقق من وجود أسماء مستعارة صالحة.
using (FileStream certStream = new FileStream(MyDir + "morzal.pfx", FileMode.Open))
{
    Pkcs12Store pkcs12Store = new Pkcs12StoreBuilder().Build();
    pkcs12Store.Load(certStream, "aw".ToCharArray());
    IEnumerator enumerator = pkcs12Store.Aliases.GetEnumerator();

    while (enumerator.MoveNext())
    {
        if (enumerator.Current != null)
        {
            string currentAlias = enumerator.Current.ToString();
            if (pkcs12Store.IsKeyEntry(currentAlias) && pkcs12Store.GetKey(currentAlias).Key.IsPrivate)
            {
                Console.WriteLine($"Valid alias found: {enumerator.Current}");
            }
        }
    }
}

// 3 - استخدم اسمًا مستعارًا صالحًا:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - قم بتمرير "null" كاسم مستعار لاستخدام أول اسم مستعار متاح يُرجع مفتاحًا خاصًا:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

أنظر أيضا