pades, eimza ile pdf imzalama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
cecihan
Üye
Mesajlar: 90
Kayıt: 30 Ara 2006 11:40
İletişim:

pades, eimza ile pdf imzalama

Mesaj gönderen cecihan » 17 Şub 2018 08:50

Merhaba. İyi akşamlar. c++builder ve delphi ile program geliştirmem uzun zamandır c# ve aspx e kaymış durumda. Ama delphi ile de böyle bir sıkıntı yaşamış olan var olabilir diye buraya yazdım.birde yazılı kaynak bulamadım. benim pdf dosyalarını e-imza ile imzalamam gerekiyor. ama e-imza konusunda yeni sayılırım. esya kütüphanelerini kullanıyorum. ama c# için pades kütüphaneleri daha yok. sadece java için var. pdf imzalamak içinde devexpress'in pdf sign için kullandığı kütüphaneyi kullanma niyetindeyim. kart okuyucudan eşya kütüphanesiyle sertifikayı okuyorum. bundan sonrasına gülmeyin. daha sonra devexpress pdfsign ile uyumlu olsun diye sertifikayı .asX509Certificate2() ile x509certificate'e çevirdim ama pini nasıl aktif edebileceği mi bulamadım. bunun üzerine okudupum sertifikayı bir pfx e kaydedip new X509Certificate2 ile pinimi aktif ettim. ama pdf imzalarken Keyset does not exist hatası alıyorum. yazım, anlatım hatası varsa af ola.

mkysoft
Kıdemli Üye
Mesajlar: 2899
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: pades, eimza ile pdf imzalama

Mesaj gönderen mkysoft » 18 Şub 2018 02:07

USB dongle içindeki private key (kapalı anahtar) dışarı çıkaramazsınız. Güvenlik için sim kart içindedir. Belge imzaladığınızda hash değeri sim karta gönderdilir ve hesaplaması sim kart içinde yapılır. Yapmış olduğunuz dönüşümler sadece public key (açık anahtar) ve sertifikayı içerir, bununla da PDF imzala yapamazsınız (public key ile de imzalama/şifreleme yapılabiliyor ancak amacı farklı olduğundan es geçiyorum). Piyasada bulacağınız kütüphaneler pfx ya da standart sürücüler ile çalışacak şekilde yapılandırılmıştır, ülkemizde kullanılan milli akis yazılımı ise standartla uyumlu değildir. Uyumlu hale getirmek için biraz modifiye etmeniz lazım. Bu modifikasyon için esya kütüphanesini ilgili kütüphanaler ile birleştirmeniz gerekecek yada pkcs11 protokü ile akis.dll'i kullanmanız (tavsiye etmem) gerekecek.
Hatırladığım kadarıyla esya'nın pades kütüphanesi vardı ancak ücretli.
KamuSM'nin İmzager uygulaması hatırladığım kadarıyla pades imzası atabiliyor, içindeki jar dosyalarını kullanmak en basit yöntem olur kanımca.

cecihan
Üye
Mesajlar: 90
Kayıt: 30 Ara 2006 11:40
İletişim:

Re: pades, eimza ile pdf imzalama

Mesaj gönderen cecihan » 18 Şub 2018 03:55

verdiğiniz bilgiler için çok teşekkür ederim. daha işin çok başında olduğumu gösterdi. web tabanlı laboratuvar uygulamamız var. oluşturulan, değiştirilen tüm raporlar otomatik olarak veritabannda saklanıyor. son raporu 2-3 kişi e-imza ile imzaladıktan sonra yine sistemde tutmam gerekiyor. bir şekilde client tarafında üretilen raporu veritabanına almam lazım. çok kavram olduğu ve kısaltıldığı için e-imza konusunda kafam karışıktı. pfx'e ulaşmanın veya onu c# standart değişkenlerine (X509Certificate2) işimi çözeceğini düşünmüştüm ( yattı.) olmazsa bir exe yazarak imzalama işini client tarafında yapıp, daha sonra SQL'e yazarım diye düşünüyordum. eşyanın java kütüphanesinde pades imzalama var. bu durumda applet yazmayı öğrenmem gerekecek.

mkysoft
Kıdemli Üye
Mesajlar: 2899
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: pades, eimza ile pdf imzalama

Mesaj gönderen mkysoft » 18 Şub 2018 07:44

Kötü haberim var, applet tüm tarayıcılardan çıkarıldı. İnternet Explorer desteklemeye devam ediyor. Firefox için ESR 56 son destekleyen versiyon. Kısa vadede bitecek bir işe zaman harcamayın. Masaüstü çalışan bir imzalama uygulaması geliştirmeniz gerekecek. Bu işi kesinlikle USB dongle'ın takılı olduğu yerde yapmalısınız ya da RDP ile akıllı kartları taşımanız lazım. Yine USB cihazları taşıyan yazılımlarda var. Raporu kullanıcı oluşturduğuna göre muhtemelen e-imza da ondan olacağından kullanıcı makinasında yapmak en mantıklısı. Sizin web tabanlı uygulamanız ile kullanıcı makinasında çalışacak uygulamayı konuşturmanız gerekecek. Bunun web servis yapabilirsiniz yada web uygulamasından kullanıcının makinasında çalıştıracağınız uygulamayı rest / websocket ile java script tarafında çalığırabilirsiniz.
Pades tarafını java veya C# tarafında yapmanız daha kolay olacaktır, Delphi'de kök söktürebilir.

cecihan
Üye
Mesajlar: 90
Kayıt: 30 Ara 2006 11:40
İletişim:

Re: pades, eimza ile pdf imzalama

Mesaj gönderen cecihan » 18 Şub 2018 08:11

Kusura bakmayın. zamanınızı alıyorum. Zaten yetkili kişilerin indirebildiği bir masaüstü uygulaması var programda. kendi ürettiğimiz uyduruk dosya formatında server database adres, kullanıcı adı, rapor numarası türü bilgileri şifreleyerek o uygulama ile açtırıyorum. uygulama direk databaseden fastreport üretilmiş raporu düzenleyebiliyor. Tüm işlemler streamler üzerinde oluyordu. Rapor hiçbir şekilde diske yazılmıyordu. Sizin anlattıklarınızdan sonra; imza için yine aynı uygulamaya dosya gönderilecek. uygulama SQL'den pdf olarak alıp diske yazacak. ya java (nasıl yapacağız bakalım.) ile veya 'kolay imza' isimli bir uygulama (pades imzası atabiliyormuş. denemedim.) ile imzalayıp tekrar SQL'e yazacağım. ben c# ile imzalayabilsem stream ile çözüp diske yazmazdım. ama esya pades için c# ayağında desteklemiyor gibi. bende nasıl applet yazabileceğimi araştırıyordum. sizin yazınızdan sonra bıraktım. İmzager'in pades java signer'ı dışardan parametre alabilir mi? yoksa yine java ile mi etkileşir. Yeniden yardımınız için çok teşekkürler.

mkysoft
Kıdemli Üye
Mesajlar: 2899
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: pades, eimza ile pdf imzalama

Mesaj gönderen mkysoft » 19 Şub 2018 11:15

Java tarafında uğraşmadım, C# tarafında iTextSharp ile Esya'yı birşeştirerek imza atılabiliyor, farklı yöntemlerde mümkün.

Cevapla