Skip to content

Certificate Question #36

@MaxBayne

Description

@MaxBayne

السلام عليكم ورحمة الله وبركاته
عندي سؤال فيما يخص الشهادة الخاصة بالتوقيع
في الكود المرفق للبرنامج

var certificateSearchAttributes = new List<IObjectAttribute>()
                    {
                        session.Factories.ObjectAttributeFactory.Create(CKA.CKA_CLASS, CKO.CKO_CERTIFICATE),
                        session.Factories.ObjectAttributeFactory.Create(CKA.CKA_TOKEN, true),
                        session.Factories.ObjectAttributeFactory.Create(CKA.CKA_CERTIFICATE_TYPE, CKC.CKC_X_509)
                    };

                    IObjectHandle certificate = session.FindAllObjects(certificateSearchAttributes).FirstOrDefault();

                    if (certificate is null)
                    {
                        return "Certificate not found";
                    }

هنا بيبحث عن شهادة مخزنة داخل التوكن ومفيش استخدام اخر للشهادة المخزنة داخل التوكن
والا ميعرفش الشهادة المخزنة للتوكن بتكون شهادة خاصة باسم العميل نفسه وليس Egypt Trust

image

وفي الكود التالي


 X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
                    store.Open(OpenFlags.MaxAllowed);

                // find cert by thumbprint
                var foundCerts = store.Certificates.Find(X509FindType.FindByIssuerName, TokenCertificate, false);

                //var foundCerts = store.Certificates.Find(X509FindType.FindBySerialNumber, "2b1cdda84ace68813284519b5fb540c2", true);

هنا بيبحث عن شهادة مثبته علي جهاز الكمبيوتر باسم Egypt Trust Sealing CA
مثبتة داخل Personal و CurrentUser

والا هي مستخدمة في الكود باستخدام السطر التالي

CmsSigner signer = new CmsSigner(certForSigning);

ايضا عند استخدام
Egypt_Trust_Activation
وده حزمة بيتم تسطيبها وهي اوتوماتيك بتقوم بتنصيب
epass2003
وبتقوم بتثبيت الشهادات
image

يعني مفيش وجود لشهادات مخزنة داخل Personal

السؤال ؟
عملية التوقيع بتحتاج Private Key والمفروض انها تكون مع الشهادة الا داخل التوكن وليست الشهادة المثبتة الخاصة ب Egypt Trust Sealing CA
يبقي ازاي بيتم استخدام شهادة Egypt Trust Sealing CA الا مفهاش Private key وبيتم استخدامها في التوقيع الالكتروني
مع العلم ان الشهادة الموجودة مع التوكن بداخله غير مسموح بتصدير private key عند تصديرها او عند محاولة تثبيت الشهادة الخاصة بالعميل والموجودة داخل التوكن علي جهاز الكمبيوتر داخل Personal و CurrentUser بيتم تثبيها بدون Private key ومش هتكون مفيدة في الحالة دي

image

في الصورة السابقة شكل الشهادة الخاصة بالعميل والا تم تثبيتها من برنامج
epass Manager

وزي ما انتوا شايفين الشهادة مش معاها
Private Key
يعني مفيش منها اي استفادة

حد فاهم عنده اجابة للتساؤلات دي
وشكرا

@bassemAgmi
@BothienaAdel

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions