Bu sayfanın seçili sürümü ile mevcut sürümü arasındaki farkları gösterir.
en:esya:cmszarf:sifreleme [2013/09/11 10:11] Dindar Öz oluşturuldu |
en:esya:cmszarf:sifreleme [2013/09/11 10:34] (mevcut) Dindar Öz |
||
---|---|---|---|
Satır 1: | Satır 1: | ||
===== Encryption ===== | ===== Encryption ===== | ||
- | In order to encrypt a document | + | In order to encrypt a document ''CmsEnvelopeGenerator'' or ''CmsEnvelopeStreamGenerator'' is used. The latter is used for handling very large documents. Since ''CmsEnvelopeGenerator'' performs encryption in memory, the maximum file size is limited with the JRE's memory limit. |
- | Bir veriyi şifrelemek için ''CmsEnvelopeGenerator'' veya ''CmsEnvelopeStreamGenerator'' sınıfları kullanılmalıdır. Büyük verilerin şifrelenmesi için ''CmsEnvelopeStreamGenerator'' sınıfı kullanılmalıdır. ''CmsEnvelopeGenerator'' sınıfı, bellek üzerindeki bir veriyi şifrelediginden, şifreleyebilecegi dosyanın boyutu JRE'nin bellek sınırı kadardır. | + | |
- | Bir doküman bir kişiye veya daha fazla kişiye şifrelenebilir. Eğer şifrelenmis dokümanının şifresi çözülebiliyorsa, bu dokümana yeni alıcılar eklenebilir. Sifreli veri göndermek için, verinin gönderileceği kişi veya kişilerin sertifikalarının elimizde olması gerekmektedir. | + | A document may be encrypted for one or more persons. If the private key of one of the recipients are accessible then new recipients added to an EnvelopedData. To create an EnvelopedData, the encryption certificates of the recipients are required. |
<sxh java;title:Java> | <sxh java;title:Java> | ||
Satır 19: | Satır 18: | ||
==== Decryption ==== | ==== Decryption ==== | ||
- | Şifreli verinin çözülmesi için ''CmsEnvelopeParser'' veya ''CmsEnvelopeStreamParser'' sınıfı kullanılmalıdır. Büyük şifreli verilerin çözülmesi için ''CmsEnvelopeStreamParser'' sınıfı kullanılmalıdır. | + | In order to decrypt an encrypted document ''CmsEnvelopeParser'' or ''CmsEnvelopeStreamParser'' is used. The latter is used for handling very large documents. |
- | Şifrelenmis verinin çözülmesi için hangi sertifika için şifrelenmis ise o sertifika ve o sertifikaya ait sifre çözücünün elimizde olması gerekmektedir. Sifre çözücü olarak akıllı kart veya bellek kullanılabilir. | + | To decrypt an EnvelopedData the private key of one of the recipients of the document must be accessible. To access a private key either smartcard or memory is used. Below, you can see an example of decryption with a private key stored in a smartcard. |
- | Aşağıda akıllı kart ile şifreli veriyi çözen örnek kod bloğu verilmistir. | + | |
<sxh java;title:Java> | <sxh java;title:Java> | ||
Satır 51: | Satır 49: | ||
==== Adding New Recipients to Enveloped Data ==== | ==== Adding New Recipients to Enveloped Data ==== | ||
- | Şifreli veri olustururken, kim için şifreleme yapılacaksa, o kisinin şifreleme sertifikasının elimizde olması gerekmektedir. Bunun için kullanılabilecek yöntemlerden bir tanesi, dizin sisteminden e-posta adresiyle kullanıcı sertifikasının bulunmasıdır. | + | While creating an EnvelopedData, you must have the encryption certificates of the recipients. One way to collect recipient certificates is to query an existing LDAP system by using the e-mail address information of the recipients. |
- | Dizin sistemi işlemleri ESYA API kütüphanesinde ESYA API Infra projesinde bulunmaktadır. Bu proje için " ma3api-infra-....jar"ını edinmeniz gerekmektedir. | + | LDAP operations are placed in the ESYA API Infra project in ESYA API. You have to get "ma3api-infra-....jar" for this project. |
- | Aşağıdaki örnek kod bizim test sistemimizde e-posta adresinden sertifikayı bulan örnek koddur. Kodu kullanırken kendi sisteminize göre uyarlamanız gerekmektedir. | + | The sample code below, finds a certificate by searching our test system with an e-mail address. You should adapt this code for your own environment before using it. |
<sxh java;title:Java> | <sxh java;title:Java> | ||
Satır 164: | Satır 162: | ||
==== Adding New Recipients to Enveloped Data ==== | ==== Adding New Recipients to Enveloped Data ==== | ||
- | Şifrelenmis veriye yeni alıcılar eklenebilir. Bunun için şifreli dokümanın hepsini çözmeye gerek yoktur. Sadece dokümanın şifrelendigi simetrik anahtarı elde edip, yeni alıcı için bu simetrik anahtarı şifreleyip dokümana eklemek gerekmektedir. Simetrik anahtarı elde edebilmek için kütüphaneye bir çözücü verilmelidir. Simetrik anahtarı elde etme islemi dokümanın çözülmesi gibi uzun sürmez. | + | New recipients can be added into an existing EnvelopedData, which do not requires a complete decryption of the document. The encrypted symmetric key is decrypted by the private key of one of the existing recipients and reencrypted by using the certificate of the new recipient. Therefore to add a new recipient to an existing EnvelopedData, one decryptor object must be provided to the API. The decryption of only symmetric encryption key does not take as long time as the decryption of the whole document. |
<sxh java;title:Java> | <sxh java;title:Java> |