Akıllı kartta şifre çözme ve imzalama işlemlerinin yapılması için karta giriş yapılması gerekmektedir. SmartCard sınıfının decryptDataWithCertSerialNo(…)
,decryptData(…)
, signDataWithCertSerialNo(…)
, signData(…)
fonksiyonları kriptografik işlemleri yerine getirmek için kullanılabilir. Akıllı kart ile yapılacak işlemler, özel anahtar(private key) ile yapılacak işlemler olmalıdır. Açık anahtar ile yapılan işlemlerin herhangi bir güvenlik kısıtı olmadığından, akıllı kartta yapılmasına gerek yoktur. Özel anahtar kullanan işlemler ise imza atma ve şifrelenmiş verinin şifresinin çözülmesi işlemidir.
Yalnız imzalama ve şifreleme işlemlerini kullanan modüller BaseSigner
veya BaseCipher
arayüzünde imzacılar ve şifreleyiciler istemektedir. Bu yüzden SCSignerWithCertSerialNo
, SCSignerWithKeyLabel
, SCCipherWithCertSerialNo
, SCCipherWithKeyLabel
sınıfları daha çok kullanılacaktır.
Aşağıdaki örnek kodda sertifika seri numarası ile işlem yapan sınıflar vardır.
<sxh java;title:Java>
SCSignerWithCertSerialNo signer = new SCSignerWithCertSerialNo(sc, session,
slot,signatureCert.getSerialNumber().toByteArray(), Algorithms.SIGNATURE_RSA_SHA1);
</sxh>
<sxh csharp;title:C#>
BaseSigner signer = new SCSignerWithCertSerialNo(sc, session, slots[0],
cert.getSerialNumber().GetData(),SignatureAlg.RSA_SHA1.getName());
</sxh>
Aşağıdaki örnek kodda anahtar adı ile işlem yapan sınıflar vardır.
<sxh java;title:Java>
SCSignerWithKeyLabel signer = new SCSignerWithKeyLabel(sc, session, slot,
"yasemin.akturk#SIGN0",Algorithms.SIGNATURE_RSA_SHA1);
</sxh>
<sxh csharp;title:C#>
BaseSigner signer = new SCSignerWithKeyLabel(sc, session, slot,
"yasemin.akturk#ug.netSIGN0",SignatureAlg.RSA_SHA1.getName());
</sxh>