ESYAE-imza Kütüphaneleri

User Tools

Site Tools


en:esya:ortakimza:imza-api-kullanim

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ı

en:esya:ortakimza:imza-api-kullanim [2013/08/28 12:42]
Dindar Öz
en:esya:ortakimza:imza-api-kullanim [2013/08/28 13:37] (mevcut)
Dindar Öz
Satır 92: Satır 92:
  
  
-===== İmza Doğrulama ​=====+===== Signature Verification ​=====
  
-İmza doğrulamada ​''​SignatureContainer'' ​içindeki ​''​verifyAll()'' ​metodu kullanılır.+''​verifyAll()'' ​method in ''​SignatureContainer'' ​is used for signature verification.
  
 <sxh java; highlight:​[6];​ title:Java Code> <sxh java; highlight:​[6];​ title:Java Code>
-// imzayı oku+// read the signature
 SignatureContainer container = SignatureFactory.readContainer(inputstream);​ SignatureContainer container = SignatureFactory.readContainer(inputstream);​
 inputstream.close();​ inputstream.close();​
  
-// imza doğrula+// verify
 ContainerValidationResult cvr = container.verifyAll();​ ContainerValidationResult cvr = container.verifyAll();​
  
-// imza yapısı içerisindeki bütün imzalar geçerli mi?+// are all the signatures in the container valid?
 assertEquals(ContainerValidationResultType.ALL_VALID,​ cvr.getResultType());​ assertEquals(ContainerValidationResultType.ALL_VALID,​ cvr.getResultType());​
 </​sxh>​ </​sxh>​
  
 <sxh csharp; highlight:​[6];​ title:.NET Code > <sxh csharp; highlight:​[6];​ title:.NET Code >
-// imzayı oku+// read the signature
 SignatureContainer container = SignatureFactory.readContainer(inputstream);​ SignatureContainer container = SignatureFactory.readContainer(inputstream);​
 inputstream.Close();​ inputstream.Close();​
  
-// imza doğrula+// verify
 ContainerValidationResult cvr = container.verifyAll();​ ContainerValidationResult cvr = container.verifyAll();​
  
-// imza yapısı içerisindeki bütün imzalar geçerli mi?+// are all the signatures in the container valid?
 Assert.AreEqual(ContainerValidationResultType.ALL_VALID,​ cvr.getResultType());​ Assert.AreEqual(ContainerValidationResultType.ALL_VALID,​ cvr.getResultType());​
 </​sxh>​ </​sxh>​
  
-==== İmza doğrulama Sonuç Nesnesi ​==== +==== Signature Verification Result Object ​==== 
  
-İmza doğrulama sonuç nesnesi ​''​toString()'' ​metodu, imza nesne hiyerarşisini bir ağaç yapısında formatlı olarak döner.+The method ​''​toString()'' ​in signature verification result object ​ returns ​ the signature object hierarchy as tree. 
 +The verification result of ''​SignatureContainer''​ is ''​ContainerValidationResult''​ where as that of each signature is ''​SignatureValidationResult''​. ''​ContainerValidationResult''​ object includes those ''​SignatureValidationResult''​ objects
  
-''​SignatureContainer'' ​nesnesine ait doğrulama sonucu ​''​ContainerValidationResult''​, her bir imzaya ait doğrulama sonucu ''​SignatureValidationResult''​ nesnesidir. ''​SignatureValidationResult''​ nesneleri ''​ContainerValidationResult''​ içerisinde yer alır.+To interpret the signature verification result the field ''​ContainerValidationResultType'' ​in the class ''​ContainerValidationResult'' ​is used
  
-İmza doğrulama sonucunu anlamak için ''​ContainerValidationResult''​ içindeki ''​ContainerValidationResultType''​ alanına bakmak yeterlidir. +To identify which signatures are invalid, the corresponding signature results must be inspected.
- +
-Hangi imzanın hatalı olduğu bilinmek istenirse ilgili imza sonuçları kontrolden geçirilmelidir.+
  
 <sxh java; title: Java Code> <sxh java; title: Java Code>
-// NOT bu metod ContainerValidationResult ​içinde  +// NOTE this method already exists in ContainerValidationResult !!! 
-// halihazırda mevcuttur ​!!!+
 public List<​SignatureValidationResult>​ getInvalidValidationResults() public List<​SignatureValidationResult>​ getInvalidValidationResults()
 { {
     List<​SignatureValidationResult>​ invalids =      List<​SignatureValidationResult>​ invalids = 
                                  new ArrayList<​SignatureValidationResult>​();​                                  new ArrayList<​SignatureValidationResult>​();​
-    // root imzalari tara+    // scan root signatures
     for (Signature signature : results.keySet()) {     for (Signature signature : results.keySet()) {
-        // counter ​imzalari tara+        // scan counter ​signatures
         traceResults(results.get(signature),​ invalids);         traceResults(results.get(signature),​ invalids);
     }     }
Satır 148: Satır 146:
                           List<​SignatureValidationResult>​ invalids)                           List<​SignatureValidationResult>​ invalids)
 { {
-    // imza geçerli mi?+    // is valid?
     if (svr.getResultType() != ValidationResultType.VALID) {     if (svr.getResultType() != ValidationResultType.VALID) {
         invalids.add(svr);​         invalids.add(svr);​
Satır 166: Satır 164:
 ContainerValidationResult cvr = container.verifyAll();​ ContainerValidationResult cvr = container.verifyAll();​
  
-// konteyner içindeki tüm imza doğrulama sonuçlarını tara+// scan all verification results in the container
 for (Signature signature : cvr.getAllResults().Keys){ for (Signature signature : cvr.getAllResults().Keys){
-    // imza doğrulama sonucu+    // signature verification result
     SignatureValidationResult svr = cvr.getAllResults().get(signature);​     SignatureValidationResult svr = cvr.getAllResults().get(signature);​
  
-    // imza geçerli mi?+    // is valied?
     if (svr.getResultType != ValidationResultType.VALID)     if (svr.getResultType != ValidationResultType.VALID)
         Console.WriteLine("​Geçersiz imza "​+svr);​         Console.WriteLine("​Geçersiz imza "​+svr);​
 } }
 </​sxh>​ </​sxh>​
-===== Çoklu imza =====  +===== Multiple Signatures ​=====  
-==== İmza Ekleme ​====+==== Adding Signature ​====
  
-=== Seri imza ===+=== Counter Signature ​===
  
-Bir imzayı imzalayan imzaya **seri imza** denirÖrneğin çalışan izin talebini imzalarYönetici de onay imzası atar. Seri imza oluşturmak için Signature nesnesi ​createCounterSignature(Certificate) ​metodu kullanılır.+The signature of another signature is named as counter signatureFor example, the employee signs a request and 
 +the manager signs that signature as a confirmation of the requestTo create counter signature, you can use the method ''​createCounterSignature(Certificate)''​ in ''​Signature''​.
  
 <sxh java;​title:​Java Code;> <sxh java;​title:​Java Code;>
-// imza konteynerini dosyadan oku+// read the signature container
 SignatureContainer sc = SignatureFactory.readContainer(fileInputStream);​ SignatureContainer sc = SignatureFactory.readContainer(fileInputStream);​
  
-// konteynerdeki ilk imzayı al+// take the first signature
 Signature s = sc.getSignatures().get(0);​ Signature s = sc.getSignatures().get(0);​
  
-// seri imzayı oluştur+// create counter signature object
 Signature counter= s.createCounterSignature(counterSignersCertificate);​ Signature counter= s.createCounterSignature(counterSignersCertificate);​
  
-// seri imza at+// sign
 counter.sign(cardSigner);​ counter.sign(cardSigner);​
  
-// imza konteynerini dosyaya yaz+// write the signature container to a file
 sc.write(new FileOuputStream(fileName));​ sc.write(new FileOuputStream(fileName));​
 </​sxh>​ </​sxh>​
  
 <sxh csharp; title:.NET Code;> <sxh csharp; title:.NET Code;>
-// imza konteynerini dosyadan oku+// read the signature container
 SignatureContainer sc = SignatureFactory.readContainer(fileInputStream);​ SignatureContainer sc = SignatureFactory.readContainer(fileInputStream);​
  
-// konteynerdeki ilk imzayı al+// take the first signature
 Signature s = sc.getSignatures()[0];​ Signature s = sc.getSignatures()[0];​
  
-// seri imzayı oluştur+// create counter signature object
 Signature counter= s.createCounterSignature(counterSignersCertificate);​ Signature counter= s.createCounterSignature(counterSignersCertificate);​
  
-// seri imza at+// sign
 counter.sign(cardSigner);​ counter.sign(cardSigner);​
  
-// imza konteynerini dosyaya yaz+// write the signature container to a file
 sc.write(new FileOuputStream(fileName));​ sc.write(new FileOuputStream(fileName));​
 </​sxh>​ </​sxh>​
  
-=== Paralel imza ===+=== Parallel Signature ​=== 
 + 
 +Whenever the method ''​createSignature()''​ in ''​SignatureContainer''​ is caleed, a signature is created and added into the container. These independent signatures in the container are called as **paralel signature**. ​
  
-''​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;> <sxh java; title:Java & .NET Code;>
-// imza konteynerini dosyadan oku+// read the signature container
 SignatureContainer container =    ​ SignatureContainer container =    ​
         SignatureFactory.readContainer(fileInputStream);​         SignatureFactory.readContainer(fileInputStream);​
Satır 234: Satır 234:
 s2.sign(signer2);​ s2.sign(signer2);​
  
-// imzayı dosyaya yaz+// write the signature to a file
 container.write(new FileOuputStream(fileName));​ container.write(new FileOuputStream(fileName));​
 </​sxh>​ </​sxh>​
  
-==== İmza Çıkarma ​====+==== Extracting Signature ​  ====
  
-İmzayı üst yapısından ayırmak için ''​detachFromParent()'' ​metodu kullanılırBu metodun uygulandığı imza, eğer bir seri imza ise üst imzadan, ilk seviyede bir imza ise konteynerden(''​SignatureContainer''​) ayrılmış olurAyrılan imzanın kendi seri imzaları varsa onlarda imza ile birlikte konteynerden çıkar.+To extract the signature from a signed document the method ​''​detachFromParent()'' ​is usedIf the signature to be extracted is a counter signature it is extracted from the parent signatureThe extracted signatures contains all of its children counter signatures.
  
 <sxh java;​title:​Java Code> <sxh java;​title:​Java Code>
-// konteynerdeki ilk imzayı al+// take the first signature
 Signature s = sc.getSignatures().get(0);​ Signature s = sc.getSignatures().get(0);​
  
-// ilk seri imzayı oluştur+// take the first counter signature
 Signature counterSignature = s.getCounterSignatures().get(0);​ Signature counterSignature = s.getCounterSignatures().get(0);​
  
-// seri imzayı(ve alt imzalarını) çıkar+// extract the counter signature and its children
 counterSignature.detachFromParent();​ counterSignature.detachFromParent();​
  
-// imzayı yaz+// write the signature
 container.write(stream);​ container.write(stream);​
 .NET Code .NET Code
-// konteynerdeki ilk imzayı al+// take the first signature
 Signature s = sc.getSignatures()[0];​ Signature s = sc.getSignatures()[0];​
  
-// ilk seri imzayı oluştur+// take the first counter signature
 Signature counterSignature = s.getCounterSignatures()[0];​ Signature counterSignature = s.getCounterSignatures()[0];​
  
-// seri imzayı(ve alt imzalarını) çıkar+// extract the counter signature and its children
 counterSignature.detachFromParent();​ counterSignature.detachFromParent();​
  
-// imzayı yaz+// write the signature
 container.write(stream);​ container.write(stream);​
 </​sxh>​ </​sxh>​
  
-===== İmza Profillerine Uygun İmza Atma ===== +===== Creation of Signatures with Profiles  ​===== 
  
-İ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.+For the detailed information about signature profiles, see [[en:esya:​eimza:​profiller|Signature Profiles]] 
 +The class ''​TurkishESigProfiles''​ contains the policies for the signature profiles defined in Turkey.
  
-Türkiyede tanımlı imza profil politikaları TurkishESigProfiles sınıfında tanımlıdır. 
  
-==== P1 İmza Atma ====+==== P1 Signature Creation ​====
  
-P1 profili, temel olarak içinde imza zamanı özelliği olan ES-BES ​imzadır.+P1 is ES-BES ​which generally contains the signing time.
  
 <sxh java; title:Java & .NET Code;> <sxh java; title:Java & .NET Code;>
Satır 284: Satır 284:
 signature.setSigningTime(Calendar.getInstance());​ signature.setSigningTime(Calendar.getInstance());​
 signature.sign(cardSigner);​ signature.sign(cardSigner);​
-// imzayı yaz+// write
 container.write(stream);​ container.write(stream);​
 </​sxh>​ </​sxh>​
  
-==== P2 İmza Atma ====+==== P2 Signature Creation ​====
  
-P2 profili zaman damgalı imzadır.+P2 signature contains timestamp.
  
 <sxh java; title:Java & .NET Code> <sxh java; title:Java & .NET Code>
Satır 296: Satır 296:
 Signature signature = container.createSignature(signersCertificate);​ Signature signature = container.createSignature(signersCertificate);​
 signature.addContent(contentToSign,​ true); signature.addContent(contentToSign,​ true);
-// imza zamanı+// signature time
 signature.setSigningTime(Calendar.getInstance());​ signature.setSigningTime(Calendar.getInstance());​
-// imza politikası+// signature policy
 signature.setSignaturePolicy(TurkishESigProfiles.SIG_POLICY_ID_P2v1);​ signature.setSignaturePolicy(TurkishESigProfiles.SIG_POLICY_ID_P2v1);​
-// imzala+// sign
 signature.sign(cardSigner);​  signature.sign(cardSigner);​
-// ES-T tipi imzaya dönüştür ​(zaman damgası ekle)+// upgrade to ES-T (add timestamp)
 signature.upgrade(SignatureType.ES_T);​ signature.upgrade(SignatureType.ES_T);​
-// imzayı yaz+// write
 container.write(stream);​ container.write(stream);​
 </​sxh>​ </​sxh>​
  
-==== P3 İmza Atma ====+==== P3 Signature Creation ​====
  
-P3 profili doğrulama için SİL(Sertifika İptal Listesi) kullanılan uzun ömürlü imzalar içindir.+The signature profile ​P3 is used for long-term signatures where CRL is available.
  
 <sxh java;​title:​Java & .NET Code;> <sxh java;​title:​Java & .NET Code;>
-// context ​yarat+// create ​context ​
 Context context = new Context(new File(workingDir).toURI());​ Context context = new Context(new File(workingDir).toURI());​
  
-// uygun setifika doğrulama politikası ​(doğrulamada sadece Sİl kullan)+// proper certificate validation policy ​(use always OCSP when available)
 context.getConfig().setCertificateValidationPolicy(crlOnlyPolicy);​ context.getConfig().setCertificateValidationPolicy(crlOnlyPolicy);​
  
-// imzayı yarat+// create signature container
 SignatureContainer c = SignatureFactory.createContainer(format,​ context); SignatureContainer c = SignatureFactory.createContainer(format,​ context);
 Signature signature = c.createSignature(signersCertificate);​ Signature signature = c.createSignature(signersCertificate);​
  
-// imzalanacak içerik+// content to be signed
 signature.addContent(contentToSign,​ true); signature.addContent(contentToSign,​ true);
-// imza zamanı+// signature time
 signature.setSigningTime(Calendar.getInstance());​ signature.setSigningTime(Calendar.getInstance());​
  
-// imza politikası+// signature policy
 signature.setSignaturePolicy(TurkishESigProfiles.SIG_POLICY_ID_P3v1);​ signature.setSignaturePolicy(TurkishESigProfiles.SIG_POLICY_ID_P3v1);​
  
-// imzala+// sign
 signature.sign(cardSigner);​  signature.sign(cardSigner);​
-// gelişmiş(ES-XLong) ​imzaya çevir+// upgrade to ES-XLong)
 signature.upgrade(SignatureType.ES_XL);​ signature.upgrade(SignatureType.ES_XL);​
-// imzayı yaz+// sign
 c.write(stream);​ c.write(stream);​
 </​sxh>​ </​sxh>​
  
-==== P4 İmza Atma ====+==== P4 Signature Creation ​====
  
-P4 profili doğrulama için ÇiSDuP(OCSP) kullanılan uzun ömürlü imzalar içindir.+The signature profile ​P4 is used for long-term signatures where OCSP is available.
  
 <sxh java; title:Java & .NET Code> <sxh java; title:Java & .NET Code>
-// context ​yarat+// create ​context
 Context context = new Context(new File(workingDir).toURI());​ Context context = new Context(new File(workingDir).toURI());​
  
-// uygun sertifika doğrulama politikası ​(mümkün olan her zaman OCSP kullan)+// proper certificate validation policy ​(use always ​OCSP when available)
 context.getConfig().setCertificateValidationPolicy(ocspFirstPolicy);​ context.getConfig().setCertificateValidationPolicy(ocspFirstPolicy);​
  
-// imzayı yarat+// create signature
 SignatureContainer c = SignatureFactory.createContainer(format,​ context); SignatureContainer c = SignatureFactory.createContainer(format,​ context);
 Signature signature = c.createSignature(signersCertificate);​ Signature signature = c.createSignature(signersCertificate);​
  
-// imzalanacak içerik+// content to be signed
 signature.addContent(contentToSign,​ true); signature.addContent(contentToSign,​ true);
-// imza zamanı+// signature time
 signature.setSigningTime(Calendar.getInstance());​ signature.setSigningTime(Calendar.getInstance());​
  
-// imza politikası+// signature policy
 signature.setSignaturePolicy(TurkishESigProfiles.SIG_POLICY_ID_P4v1);​ signature.setSignaturePolicy(TurkishESigProfiles.SIG_POLICY_ID_P4v1);​
  
-// imzala+// sign
 signature.sign(cardSigner);​  signature.sign(cardSigner);​
-// gelişmiş(ES-XLong) ​imzaya çevir ​+// upgrade to ES-XLong)
 signature.upgrade(SignatureType.ES_XL);​ signature.upgrade(SignatureType.ES_XL);​
-// imzayı yaz+// write
 c.write(stream);​ c.write(stream);​
 </​sxh>​ </​sxh>​
  
en/esya/ortakimza/imza-api-kullanim.1377693734.txt.gz · Son değiştirilme: 2013/08/28 12:42 Değiştiren: Dindar Öz