Bu sayfanın seçili sürümü ile mevcut sürümü arasındaki farkları gösterir.
esya:smartcard:sertifika-okuma [2013/07/24 06:37] Beytullah Yiğit created |
esya:smartcard:sertifika-okuma [2013/08/29 05:13] (mevcut) Beytullah Yiğit |
||
---|---|---|---|
Satır 1: | Satır 1: | ||
===== Akıllı Kartan Sertifikanın Okunması ===== | ===== Akıllı Kartan Sertifikanın Okunması ===== | ||
- | Akıllı karttan sertifika SmartCard sınıfının getSignatureCertificates() veyagetEncryptionCertificates() fonksiyonları ile okunabilir. Eğer imzalama işlemi yapılacaksa getSignatureCertificates() fonksiyonu, şifreleme işlemi yapılacaksa getEncryptionCertificates() fonksiyonu kullanılmalıdır.Bu fonksiyonlar sertifikaların kodlanmış hallerini byte [] olarak dönerler. Eğer ESYA APIasn modülünü (ma3api-asn-....jar / ma3api-asn.dll) kullanabiliyorsanız, karttan aldığınız bytedeğerlerini anlamlı hale getirmek için ECertificate sınıfını kullanabilirsiniz. | + | Akıllı karttan sertifika ''SmartCard'' sınıfının ''getSignatureCertificates()'' veya ''getEncryptionCertificates()'' fonksiyonları ile okunabilir. Eğer imzalama işlemi yapılacaksa ''getSignatureCertificates()'' fonksiyonu, şifreleme işlemi yapılacaksa ''getEncryptionCertificates()'' fonksiyonu kullanılmalıdır.Bu fonksiyonlar sertifikaların kodlanmış hallerini byte [] olarak dönerler. Eğer ESYA API-ASN modülünü (ma3api-asn-....jar / ma3api-asn.dll) kullanabiliyorsanız, karttan aldığınız byte değerlerini anlamlı hale getirmek için ''ECertificate'' sınıfını kullanabilirsiniz. |
- | Atılacak imzanın kanuni hükümlülüklerinin olması için imzalamada kullanılan sertifikanın nitelikli olması gerekmektedir. Bu kontrol ECertificate sınıfının isQualifiedCertificate() fonksiyonu ileyapılabilir. | + | Atılacak imzanın kanuni yükümlülüklerinin olması için imzalamada kullanılan sertifikanın nitelikli olması gerekmektedir. Bu kontrol ''ECertificate'' sınıfının ''isQualifiedCertificate()'' fonksiyonu ile yapılabilir. |
- | ECertificate sınıfının getSubject().stringValue() fonksiyonu ile sertifikalar birbirindenayırt edilebilir. Kullanıcı bu bilgi ile seçim yapabilir. | + | ''ECertificate'' sınıfının ''getSubject().stringValue()'' fonksiyonu ile sertifikalar birbirinden ayırt edilebilir. Kullanıcı bu bilgi ile seçim yapabilir. |
- | Ayrıca ECertificate sınıfının getSubject().getCommonNameAttribute() fonksiyonusertifika sahibinin ismini dönmektedir. Karttaki sertifikaların isim bilgisi hepsi için aynıolacağından, karttaki sertifikaları ayırt etmek amacıyla kullanılamaz. Kimin imzayı attığını göstermek için kullanılabilir. | + | Ayrıca ''ECertificate'' sınıfının ''getSubject().getCommonNameAttribute()'' fonksiyonu, sertifika sahibinin ismini dönmektedir. Karttaki sertifikaların isim bilgisi, tüm sertifikalar için aynı olacağından, karttaki sertifikaları ayırt etmek amacıyla kullanılamaz. İmzayı kimin attığını göstermek için kullanılabilir. |
- | Aşağıdaki kod bloğu akıllı kart içinden imzalama sertifikalarını alıp nitelikli olanların Subject alanını ekrana basılmaktadır. | + | |
+ | Aşağıdaki kod bloğu akıllı kart içinden imzalama sertifikalarını alır ve nitelikli olanların subject alanını ekrana yazar. | ||
<sxh java;title:Java> | <sxh java;title:Java> | ||
Satır 29: | Satır 30: | ||
</sxh> | </sxh> | ||
- | Eğer ESYA API asn sınıflarına erişim yoksa, ECertificate yerine java'nın x509Certificate sınıfı kullanılabilir. ECertificate sınıfının isQualifiedCertificate() fonksiyonu yerine aşağıdaki örnek kodda gösterildiği gibi kontrol yapılabilir. Sertifikaları birbirinden ayırt etmek amacıyla x509Certificate sınıfının getSubjectDN().toString() metodu kullanılabilir. | + | Eğer ESYA API-ASN sınıflarına erişim yoksa, ''ECertificate'' yerine java'nın ''x509Certificate'' sınıfı kullanılabilir. ''ECertificate'' sınıfının ''isQualifiedCertificate()'' fonksiyonu yerine aşağıdaki örnek kodda gösterildiği gibi kontrol yapılabilir. Sertifikaları birbirinden ayırt etmek amacıyla ''x509Certificate'' sınıfının ''getSubjectDN().toString()'' metodu kullanılabilir. |
+ | |||
+ | Aşağıdaki kod bloğu akıllı kart içinden imzalama sertifikalarını alır ve nitelikli olanların Subject alanını ekrana yazar. | ||
- | Aşağıdaki kod bloğu akıllı kart içinden imzalama sertifikalarını alıp nitelikli olanların Subject alanını ekrana basmaktadır. | ||
<sxh java;title:Java> | <sxh java;title:Java> | ||
List<byte []> certs = smartCard.getSignatureCertificates(session); | List<byte []> certs = smartCard.getSignatureCertificates(session); | ||
Satır 48: | Satır 50: | ||
Akıllı kartta bulunan sertifika, açık anahtar ve özel anahtarın her biri nesne olarak adlandırılır. Akıllı karttaki nesnelerin adı ile de işlem yapılabilir. Nesne adları değişken olabileceğinden nesne adları ile işlem yapmak önerilmez. Yalnız bazı durumlarda nesne adları kullanıcıya daha anlamlı gelebilir. | Akıllı kartta bulunan sertifika, açık anahtar ve özel anahtarın her biri nesne olarak adlandırılır. Akıllı karttaki nesnelerin adı ile de işlem yapılabilir. Nesne adları değişken olabileceğinden nesne adları ile işlem yapmak önerilmez. Yalnız bazı durumlarda nesne adları kullanıcıya daha anlamlı gelebilir. | ||
- | SmartCard sınıfının getSignatureKeyLabels(...) ve getEncryptionKeyLabels(...) fonksiyonları ile anahtarların adları okunabilir. Eğer anahtarın sertifikasının adı, anahtar adı ile aynı ise bu ad ile sertifika da okunabilir. Sertifikanın okunması için readCertificate(long aSessionID,String aLabel) fonksiyonu kullanılabilir. | + | ''SmartCard'' sınıfının ''getSignatureKeyLabels(...)'' ve ''getEncryptionKeyLabels(...)'' fonksiyonları ile anahtarların adları okunabilir. Eğer anahtarın, sertifikasının adı anahtarla aynı ise bu ad ile sertifika da okunabilir. Sertifikanın okunması için ''readCertificate(long aSessionID,String aLabel)'' fonksiyonu kullanılabilir. |