Bu sayfanın seçili sürümü ile mevcut sürümü arasındaki farkları gösterir.
esya:ortakimza:imza-api-kullanim [2013/07/15 11:55] Ahmet Yetgin [İmza doğrulama Sonuç Nesnesi] |
esya:ortakimza:imza-api-kullanim [2013/08/19 05:50] (mevcut) Dindar Öz |
||
---|---|---|---|
Satır 1: | Satır 1: | ||
====== Kütüphane Kullanımı ====== | ====== Kütüphane Kullanımı ====== | ||
- | ==== İmza Atma ==== | + | ===== İmza Atma ===== |
+ | |||
+ | ==== Basit (ES-BES) İmza Atma ==== | ||
<sxh java;highlight:[8,11] ;title:Java & .NET> | <sxh java;highlight:[8,11] ;title:Java & .NET> | ||
// imza konteyneri yarat | // imza konteyneri yarat | ||
Satır 38: | Satır 40: | ||
container.write(new FileOuputStream(fileName)); | container.write(new FileOuputStream(fileName)); | ||
</sxh> | </sxh> | ||
+ | |||
+ | ===== İmza Geliştirme ===== | ||
==== Basit (ES-BES) İmzayı Zaman Damgalı İmzaya Çevirme ==== | ==== Basit (ES-BES) İmzayı Zaman Damgalı İmzaya Çevirme ==== | ||
Satır 88: | Satır 92: | ||
olarak değiştimek yeterlidir. | olarak değiştimek yeterlidir. | ||
- | ==== İmza Doğrulama ==== | + | ===== İmza Doğrulama ===== |
İmza doğrulamada ''SignatureContainer'' içindeki ''verifyAll()'' metodu kullanılır. | İmza doğrulamada ''SignatureContainer'' içindeki ''verifyAll()'' metodu kullanılır. | ||
Satır 116: | Satır 120: | ||
</sxh> | </sxh> | ||
- | ===== İmza doğrulama Sonuç Nesnesi ===== | + | ==== İmza doğrulama Sonuç Nesnesi ==== |
İmza doğrulama sonuç nesnesi ''toString()'' metodu, imza nesne hiyerarşisini bir ağaç yapısında formatlı olarak döner. | İmza doğrulama sonuç nesnesi ''toString()'' metodu, imza nesne hiyerarşisini bir ağaç yapısında formatlı olarak döner. | ||
- | SignatureContainer nesnesine ait doğrulama sonucu ContainerValidationResult, | + | ''SignatureContainer'' nesnesine ait doğrulama sonucu ''ContainerValidationResult'', her bir imzaya ait doğrulama sonucu ''SignatureValidationResult'' nesnesidir. ''SignatureValidationResult'' nesneleri ''ContainerValidationResult'' içerisinde yer alır. |
- | her bir imzaya ait doğrulama sonucu SignatureValidationResult nesnesidir. | + | İmza doğrulama sonucunu anlamak için ''ContainerValidationResult'' içindeki ''ContainerValidationResultType'' alanına bakmak yeterlidir. |
- | SignatureValidationResult nesneleri ContainerValidationResult içerisinde yer alır. | + | Hangi imzanın hatalı olduğu bilinmek istenirse ilgili imza sonuçları kontrolden geçirilmelidir. |
- | + | ||
- | İmza doğrulama sonucunu anlamak için ContainerValidationResult içindeki ContainerValidationResultType alanına bakmak yeterlidir. | + | |
- | + | ||
- | Hangi imzanın hatalı olduğu bilinmek isterse ilgili imza sonuçları kontrolden geçirilmelidir. | + | |
<sxh java; title: Java Code> | <sxh java; title: Java Code> | ||
Satır 178: | Satır 178: | ||
===== Çoklu imza ===== | ===== Çoklu imza ===== | ||
==== İmza Ekleme ==== | ==== İmza Ekleme ==== | ||
- | Seri imza | + | |
- | Bir imzayı imzalayan imzaya seri imza denir. Örneğin çalışan izin talebini imzalar. Yönetici de onay imzası atar. Seri imza oluşturmak için Signature nesnesi createCounterSignature(Certificate) metodu kullanılır. | + | === Seri imza === |
- | Java Code | + | |
+ | Bir imzayı imzalayan imzaya **seri imza** denir. Örneğin çalışan izin talebini imzalar. Yönetici de onay imzası atar. Seri imza oluşturmak için Signature nesnesi createCounterSignature(Certificate) metodu kullanılır. | ||
+ | |||
+ | <sxh java;title:Java Code;> | ||
// imza konteynerini dosyadan oku | // imza konteynerini dosyadan oku | ||
SignatureContainer sc = SignatureFactory.readContainer(fileInputStream); | SignatureContainer sc = SignatureFactory.readContainer(fileInputStream); | ||
Satır 195: | Satır 198: | ||
// imza konteynerini dosyaya yaz | // imza konteynerini dosyaya yaz | ||
sc.write(new FileOuputStream(fileName)); | sc.write(new FileOuputStream(fileName)); | ||
+ | </sxh> | ||
- | .NET Code | + | <sxh csharp; title:.NET Code;> |
// imza konteynerini dosyadan oku | // imza konteynerini dosyadan oku | ||
SignatureContainer sc = SignatureFactory.readContainer(fileInputStream); | SignatureContainer sc = SignatureFactory.readContainer(fileInputStream); | ||
Satır 211: | Satır 215: | ||
// imza konteynerini dosyaya yaz | // imza konteynerini dosyaya yaz | ||
sc.write(new FileOuputStream(fileName)); | sc.write(new FileOuputStream(fileName)); | ||
+ | </sxh> | ||
=== Paralel imza === | === Paralel imza === | ||
- | SignatureContainer içinde her createSignature() metodu çağrıldığında bir imza yaratılmış ve imza konteynere eklenmiş olur. SignatureContainer içindeki birbirinden bağımsız(birbirini imzalamayan) bu imzalara paralel imza denir. | + | |
- | Java & .NET Code | + | ''SignatureContainer'' içinde ''createSignature()'' metodu her çağrıldığında bir imza yaratılmış ve imza konteynere eklenmiş olur. ''SignatureContainer'' içindeki birbirinden bağımsız(birbirini imzalamayan) bu imzalara **paralel imza** denir. |
+ | |||
+ | <sxh java; title:Java & .NET Code;> | ||
// imza konteynerini dosyadan oku | // imza konteynerini dosyadan oku | ||
SignatureContainer container = | SignatureContainer container = | ||
Satır 229: | Satır 236: | ||
// imzayı dosyaya yaz | // imzayı dosyaya yaz | ||
container.write(new FileOuputStream(fileName)); | container.write(new FileOuputStream(fileName)); | ||
+ | </sxh> | ||
==== İmza Çıkarma ==== | ==== İmza Çıkarma ==== | ||
- | İmzayı üst yapısından ayırmak için detachFromParent() metodu kullanılır. Bu metodun uygulandığı imza, eğer bir seri imza ise üst imzadan, ilk seviyede bir imza ise konteynerden(SignatureContainer) ayrılmış olur. Ayrılan imzanın kendi seri imzaları varsa onlarda imza ile birlikte konteynerden çıkar. | + | |
- | Java Code | + | İmzayı üst yapısından ayırmak için ''detachFromParent()'' metodu kullanılır. Bu metodun uygulandığı imza, eğer bir seri imza ise üst imzadan, ilk seviyede bir imza ise konteynerden(''SignatureContainer'') ayrılmış olur. Ayrılan imzanın kendi seri imzaları varsa onlarda imza ile birlikte konteynerden çıkar. |
+ | |||
+ | <sxh java;title:Java Code> | ||
// konteynerdeki ilk imzayı al | // konteynerdeki ilk imzayı al | ||
Signature s = sc.getSignatures().get(0); | Signature s = sc.getSignatures().get(0); | ||
Satır 256: | Satır 266: | ||
// imzayı yaz | // imzayı yaz | ||
container.write(stream); | container.write(stream); | ||
+ | </sxh> | ||
===== İmza Profillerine Uygun İmza Atma ===== | ===== İmza Profillerine Uygun İmza Atma ===== | ||
- | İmza profilleri hakkında detaylı açıklama için bu dökümanın İmza Profilleri bölümüne bakınız. | + | İmza profilleri hakkında detaylı açıklama için bu dökümanın [[esya:eimza:profiller|İmza Profilleri]] bölümüne bakınız. |
Türkiyede tanımlı imza profil politikaları TurkishESigProfiles sınıfında tanımlıdır. | Türkiyede tanımlı imza profil politikaları TurkishESigProfiles sınıfında tanımlıdır. | ||
- | P1 İmza Atma | + | ==== P1 İmza Atma ==== |
P1 profili, temel olarak içinde imza zamanı özelliği olan ES-BES imzadır. | P1 profili, temel olarak içinde imza zamanı özelliği olan ES-BES imzadır. | ||
- | Java & .NET Code | + | |
+ | <sxh java; title:Java & .NET Code;> | ||
SignatureContainer container = SignatureFactory.createContainer(format); | SignatureContainer container = SignatureFactory.createContainer(format); | ||
Signature signature = container.createSignature(signersCertificate); | Signature signature = container.createSignature(signersCertificate); | ||
Satır 274: | Satır 286: | ||
// imzayı yaz | // imzayı yaz | ||
container.write(stream); | container.write(stream); | ||
- | P2 İmza Atma | + | </sxh> |
+ | |||
+ | ==== P2 İmza Atma ==== | ||
P2 profili zaman damgalı imzadır. | P2 profili zaman damgalı imzadır. | ||
- | Java & .NET Code | + | |
+ | <sxh java; title:Java & .NET Code> | ||
SignatureContainer container = SignatureFactory.createContainer(format); | SignatureContainer container = SignatureFactory.createContainer(format); | ||
Signature signature = container.createSignature(signersCertificate); | Signature signature = container.createSignature(signersCertificate); | ||
Satır 290: | Satır 306: | ||
// imzayı yaz | // imzayı yaz | ||
container.write(stream); | container.write(stream); | ||
+ | </sxh> | ||
+ | |||
+ | ==== P3 İmza Atma ==== | ||
- | === P3 İmza Atma === | ||
P3 profili doğrulama için SİL(Sertifika İptal Listesi) kullanılan uzun ömürlü imzalar içindir. | P3 profili doğrulama için SİL(Sertifika İptal Listesi) kullanılan uzun ömürlü imzalar içindir. | ||
- | Java & .NET Code | + | |
+ | <sxh java;title:Java & .NET Code;> | ||
// context yarat | // context yarat | ||
Context context = new Context(new File(workingDir).toURI()); | Context context = new Context(new File(workingDir).toURI()); | ||
Satır 318: | Satır 337: | ||
// imzayı yaz | // imzayı yaz | ||
c.write(stream); | c.write(stream); | ||
+ | </sxh> | ||
+ | |||
+ | ==== P4 İmza Atma ==== | ||
- | === P4 İmza Atma === | ||
P4 profili doğrulama için ÇiSDuP(OCSP) kullanılan uzun ömürlü imzalar içindir. | P4 profili doğrulama için ÇiSDuP(OCSP) kullanılan uzun ömürlü imzalar içindir. | ||
- | Java & .NET Code | + | |
+ | <sxh java; title:Java & .NET Code> | ||
// context yarat | // context yarat | ||
Context context = new Context(new File(workingDir).toURI()); | Context context = new Context(new File(workingDir).toURI()); | ||
Satır 346: | Satır 368: | ||
// imzayı yaz | // imzayı yaz | ||
c.write(stream); | c.write(stream); | ||
+ | </sxh> | ||