ESYAE-imza Kütüphaneleri

User Tools

Site Tools


esya:smartcard:sifreleme-imzalama

Farklar

Bu sayfanın seçili sürümü ile mevcut sürümü arasındaki farkları gösterir.

Karşılaştırma görünümüne bağlantı

esya:smartcard:sifreleme-imzalama [2013/07/24 06:38]
Beytullah Yiğit created
esya:smartcard:sifreleme-imzalama [2013/08/29 05:11] (mevcut)
Beytullah Yiğit
Satır 1: Satır 1:
-===== SmartCardManager Sınıfı =====+===== Akıllı Kartla İmzalama-Şifreleme İşlemlerinin Yapılması  ​=====
  
-Dağıtılan paket içinde örnek kodlar bölümünde SmartCardManager ​sınıfını ​bulabilirsinizKendinize göre uyarlayabilmeniz ​için ık kaynak olarak dağıtılmaktadırBu sınıile temel imza lemlerinizi gerçekleştirebilirsinizSınıf aşağıdaki lemleri sağlayabilir.+Akıllı kartta şifre çözme ve imzalama işlemlerinin yapılması için karta giriş yapılması gerekmektedir. ​ SmartCard ​sınıfının ''​decryptDataWithCertSerialNo(...)'',''​decryptData(...)'',​ ''​signDataWithCertSerialNo(...)'',​ ''​signData(...)''​ fonksiyonları kriptografik işlemleri yerine getirmek ​için kullanılabilir Akıllı kart ile yapılacak ​lemler, ​ özel anahtar(private ​ key)  ile  yapılacak işlemler olmalıdırık anahtar ile yapılan işlemlerin herhangi bir güvenlik kısıtı olmadığından, akıllı ​ kartta ​ yapılmasına gerek yoktur. Özel anahtar kullanan ​lemler ise imza atma ve şifrelenmiş verinin şifresinin çözülmesi işlemidir.
  
- -Sisteme bir kart takılı ve kartta belirtilen özellikte bir sertifika varsa doğrudan bu kart ve bu sertifika üzerinden ​lem yapar. +Yalnız imzalama ​ve şifreleme ​lemlerini kullanan modüller ''​BaseSigner''​ veya ''​BaseCipher'' ​ arayüzünde ​ imzacılar  ​ve  şifreleyiciler ​ istemektedir Bu yüzden ''​SCSignerWithCertSerialNo'', ​ ''​SCSignerWithKeyLabel'', ​ ''​SCCipherWithCertSerialNo'',​ ''​SCCipherWithKeyLabel''​ sınıfları  daha çok kullanılacaktır. 
- -Birden fazla kart takılı ise kullanıcıya kart seçtirir. Birden fazla belirtilen özellikte sertifika yüklü ise kullanıcıya sertifika seçtirir. +   
- -Eğer APDU ile karta erişilmek isteniyorsa ​ve kart APDU ile erişimi destekliyorsa APDU ile karta erişim sağlarC# tarafında APDU erişimi olmadığından sadece pkcs11 erişimi sağlanmaktadır. +Aşağıdaki örnek kodda sertifika seri numarası ile işlem ​yapan sınıflar vardır.
- -Aynı kart ile imzalama işlemlerinde sertifikayı ve imzacıyı bellekten çekerek hızlanma sağlar. +
- -Bir kart ile işlem yaptıktan sonra eğer yeni bir kart takılmışsa veya işlem ​yapılan kart çıkartılmışsa kart ve sertifika seçme işlemlerini tekrarlar. +
-Örnek bir kullanım aşağıdaki gibi olabilir.+
  
 <sxh java;​title:​Java>​ <sxh java;​title:​Java>​
-//Enable APDU usage +SCSignerWithCertSerialNo signer ​new SCSignerWithCertSerialNo(sc, session
-SmartCardManager.useAPDU(true);​ +slot,signatureCert.getSerialNumber().toByteArray(), Algorithms.SIGNATURE_RSA_SHA1);
-//Connect a smartcard. If more than one smart card connected, user selects one of them +
-SmartCardManager scm SmartCardManager.getInstance(); +
-  +
-//Get qualified certificate. If more than one qualified certificateuser selects one of them. +
-ECertificate cert = scm.getSignatureCertificate(truefalse); +
-//Create signer +
-BaseSignersigner = scm.getSigner("​12345",​ cert)+
-  +
-/** +
- * Create signature +
- */ +
-  +
-//If not sign again with selected card logout. +
-scm.logout()+
-//To select new card and new certificatecall reset. +
-scm.reset();+
 </​sxh>​ </​sxh>​
  
-Yeni bir kartın takılıp takılmadığı seçili kartın çıkartılıp çıkartılmadığı getInstance() methodu içinde kontrol edilmektedirHer imzalama işleminden önce SmartCardManager nesnesini getInstance() methodu ile alınızYukarıdaki örnek kodda işlemler kısa zamanda ardışıl olarak yapıldığından nesne bir kere alınmış ve o nesne üzerinden ​işlem ​yapılmıştır.+<sxh csharp;​title:​C#>​ 
 +BaseSigner signer = new SCSignerWithCertSerialNo(sc,​ session, slots[0], 
 +cert.getSerialNumber().GetData(),​SignatureAlg.RSA_SHA1.getName());​ 
 +</​sxh>​ 
 + 
 +Aşağıdaki örnek kodda anahtar adı  ​ile ​işlem ​yapan sınıflar vardır. 
 + 
 +<sxh java;​title:​Java>​ 
 +SCSignerWithKeyLabel signer = new SCSignerWithKeyLabel(sc,​ session, slot, 
 +"​yasemin.akturk#​SIGN0",​Algorithms.SIGNATURE_RSA_SHA1);​ 
 +</​sxh>​ 
 + 
 +<sxh csharp;​title:​C#>​ 
 +BaseSigner signer = new SCSignerWithKeyLabel(sc,​ session, slot, 
 +"​yasemin.akturk#​ug.netSIGN0",​SignatureAlg.RSA_SHA1.getName()); ​                                               
 +</​sxh>​
esya/smartcard/sifreleme-imzalama.1374647910.txt.gz · Son değiştirilme: 2013/07/24 06:38 Değiştiren: Beytullah Yiğit