-
Notifications
You must be signed in to change notification settings - Fork 61
Description
السلام عليكم ورحمة الله وبركاته
عندي سؤال فيما يخص الشهادة الخاصة بالتوقيع
في الكود المرفق للبرنامج
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
وفي الكود التالي
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
وبتقوم بتثبيت الشهادات

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

