ESYAE-imza Kütüphaneleri

User Tools

Site Tools

Writing /var/www/yazilimkamusmgovtr/esya-api/data/cache/e/e3a46521dd11d02f1d00865d739a5ddc.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /var/www/yazilimkamusmgovtr/esya-api/data/cache/e/e3a46521dd11d02f1d00865d739a5ddc.metadata failed

en:esya:ios:ios

Bu, dökümanın eski bir sürümüdür!


Signature on iOS

Basic Electronic Signature (BES) format is supported on iOS devices.

Notes

  • API depends on Qt.

Capabilities

  • Signatures can be created with type CAdES-BES.
  • Generated signature is saved with name “sig.der” under “Documents” directory of the application.
  • License is checked. You are not allowed to sign without a valid license.

Constraints

  • The document that is going to be signed is digested using SHA-256.
  • Oluşturulan imza SigningCertificateV2'ye sahip oluyor.
  • İmzalama algoritması olarak RSA-with-SHA256 kullanılıyor.
  • (Kart okuyucu kısıtı).

Kullanım

  • Qt'nin son versiyonu (5.2 ve sonrası) kurulu olmalıdır.
  • plist dosyasına gereken içerik eklenmelidir. (“iTunes file sharing” ve kart okuyucu icin “external accessory”)

Lisansın Eklenmesi

  • Lisans uygulamanın altındaki 'Documents' dizinine konulmalıdır.
  • İsmi lisans.dat olmalıdır.
  • Dizine dosya ekleme işlemi iTunes ile yapılabilir, yalnız öncesinde plist'te “iTunes file sharing” aktif edilmelidir.

Kodun Kullanımı

  • Arayüzler JAVA ve C# kütüphaneleri ile aynıdır.
  • Karta session acma işlemleri ayrı bir thread içinde yapılmalıdır.

[NSThread detachNewThreadSelector:@selector(login:) toTarget:(id)self withObject:nil];

  • Öncelikle SmartCardManager sınıfı üretilir.

SmartCardManager smartCardManager;

  • Daha sonra session açılır.

smartCardManager.openSession();

  • Şimdi imzalama işlemlerine geçilebilir.
  • İmzalamada kullanılacak sertifika alınır.

ECertificate cert = smartCardManager.getSignatureCertificate();

  • İmzayı barındıracak “Container” oluşturulur.

SignatureContainer *container = new CMSContainer();

  • Okunan sertifika ile imza oluşturulur.

Signature *signature = container->createSignature(cert);

  • İmzalanacak content oluşturulur ve imzaya eklenir. Ayrıca content'in CAdES-BES içinde yer alıp almayacağı 'boolean' ile belirtilir.

Signable *data = new SignableBytes(dataBytes);
signature->addContent(data, true);

  • İmzalamayı yapacak 'Signer' objesi, akıllı kartın PIN'i ve imzalama yapılacak sertifika verilerek oluşturulur.

BaseSigner *signer = smartCardManager.getSigner("12345", cert);

  • Son olarak imzalama işlemi yapılır.

signature->sign(signer);

en/esya/ios/ios.1397110730.txt.gz · Son değiştirilme: 2014/04/10 06:18 Değiştiren: Süleyman Uslu