Bu, dökümanın eski bir sürümüdür!
Kullanılacak çözücülerin IDecryptorStore arayüzünden türemis olmaları gerekmektedir. IDecryptorStore arayüzünün iki metodu bulunmaktadır. getEncryptionCertificates() metodu çözücünün çözebilecegi sertifikaları verir. decrypt(…) metoduna, hangi sertifika ile sifre çözme yapılması isteniyorsa o sertifika ve çözülmek istenen veri parametre olarak verilir; metot çözülmüs veriyi geri döner. Bu arayüze uyacak sekilde kendi çözücünüzü de yazabilirsiniz.
CMS Envelope kütüphanesinde hali hazırda akıllı kartta, bellekte ve Microsoft sertifika deposu üzerinden çözme islemlerini yapan çözücüler bulunmaktadır.
Enter topic text here.Akıllı kart ile çözme islemleri için SCDecryptor sınıfı kullanılmalıdır. Bu sınıf akıllı kart islemlerini yapacagı SmartCard nesnesini ve oturum numarasını parametre olarak alır. Verinin akıllı kart ile çözülebilmesi için akıllı karta giris (login) yapılması gerekmektedir.
Akıllı kart islemleri hakkında daha genis bilgi almak için “ESYA API SmartCard Kullanım Kılavuzu”na bakınız. Asağıda örnek bir çözücünün yaratılısı vardır.
ByteArrayOutputStream decryptedOutputStream = new ByteArrayOutputStream(); SmartCard sc = new SmartCard(CardType.AKIS); long slot = sc.getSlotList()[0]; long session = sc.openSession(slot); sc.login(session, "123456"); IDecryptorStore decryptor = new SCDecryptor(sc, session);
MemoryStream decryptedOutputStream = new MemoryStream(); SmartCard sc = new SmartCard(CardType.AKIS); long slot = sc.getSlotList()[0]; long session = sc.openSession(slot); sc.login(session, "12345"); IDecryptorStore decryptor = new SCDecryptor(sc, session);
Eger sertifika ve özel anahtara ulasılabiliniyorsa, sifrelenmis dosyalar bellekte de çözülebilir. Bu islem için MemoryDecryptor sınıfı kullanılmalıdır. Nesne yaratılırken sertifika ve özel anahtar çiftleri parametre olarak geçilir.
ECertificate cert = getCertificate(); PrivateKey key = getPrivKey(); MemoryDecryptor md = new MemoryDecryptor(new Pair<ECertificate, PrivateKey>(cert,key));
ECertificate cert = getCertificate(); IPrivateKey key = getPrivKey(); MemoryDecryptor md = new MemoryDecryptor(new Pair<ECertificate, IPrivateKey>(cert,key));
Microsoft sertifika deposundaki anahtar kullanılarak sifreli veri çözülmeye çalısılır. Herhangi bir parametreye ihtiyaç duymaz. Yalnız kullanıcının sertifika deposuna erisim hakkı olması gerekmektedir.