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.
  • Created signature will have SigningCertificateV2.
  • RSA-with-SHA256 is used as signing algorithm.
  • (Card reader restriction).

Usage

  • Latest version of Qt (5.2.1 and later) must be installed.
  • Required content must be added to plist file. (“iTunes file sharing” to reach files under Documents folder from iTunes and for the card reader access “external accessory”)

License

  • 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.1397113558.txt.gz · Son değiştirilme: 2014/04/10 07:05 Değiştiren: Süleyman Uslu