private void button2_Click_2(object sender, EventArgs e) { String[] terminals = SmartOp.getCardTerminals(); if (terminals == null || terminals.Length == 0) { MesajiIsle("Kart takılı bir kart okuyucu bulunamadı-Kart Kontrol İşlemi", 1); return; } // eger tum kartlari kendisi kontrol edip oto. imzalayacaksa askoption calistirma, // for dongusunde tum kartlari ve kartlardaki tum sertifikalari gezip bunlari arraya, sonrasinda da tabloya at // imzalama asamasinda tckimlikno uyusmamasi gibi bir durum olursa ancak o zaman tum kartlari bir kez daha // dolasarak db tablodaki kart ve sertifikalarin slot nolarini yenile // *********************** // alt satirda hem kartlar hem sertifikalar hem ltrm classi dolduruluyor SmartCardManagerTumunuOku scmgr = SmartCardManagerTumunuOku.getInstanceTumunuOku(); // *********************** { // olustur string Mesaj = ""; for (int i = 0; i < Program.ltrm.Count; i++) { Mesaj += "\r\nKart No: " + Convert.ToString(i + 1) + ", TerminalAdı: " + Program.ltrm[i].TerminalAdi + ", TCKimlikNo: " + Program.ltrm[i].TCKimlikNo + ", AdSoyad: " + Program.ltrm[i].AdiSoyadi + ", KartTipi: " + Program.ltrm[i].KartTipi + ", SlotID: " + Program.ltrm[i].SlotID; } if (Program.ltrm.Count > 0) { MessageBox.Show("Kartlar okundu: " + Mesaj, "Kayıt Bilgisi"); } } return; }
public bool KartveOkuyucuKontrol() { // ilk giriste terminal sayisini degiskene kaydet, sertifikayi goster ve degiskene kaydet String[] terminals = SmartOp.getCardTerminals(); Program.TerminalSayisi = terminals.Length; if (terminals == null || terminals.Length == 0) { MesajiIsle("Kart takılı bir kart okuyucu bulunamadı. E-İmza programına girmeden evvel imza için kullanacağınız kartı takmalısınız.", 1); // eskiden bundan sonra cikartmiyordum, eimza kısmında kart değiştigi veya sonradan takıldığı ortaya cikiyordu. // orada uyari alip cikiyordu (karti programa girdikten sonra degistirmeyin veya onceden takiniz gibi...) // Bir tus konulup kartlari Oku diye girdikten sonra manuel olarak kart bilgisi almasi saglanabilir ama gerekli oldugunu sanmiyorum. //MessageBox.Show("Kart takılı kart okuyucu bulunamadı", "", MessageBoxButtons.OK, // System.Windows.Forms.MessageBoxIcon.Error, // System.Windows.Forms.MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); return(false); // throw new SmartCardException("Kart takılı kart okuyucu bulunamadı"); } SmartCardManager scmgr = SmartCardManager.getInstance(); { ECertificate signingCert = scmgr.getSignatureCertificate(true, false); lbSertifikaSahibi.Text = "Sertifika ve Sahiplik Bilgisi: " + signingCert.ToString(); Program.SertifikaBilgisi = "Sertifika ve Sahiplik Bilgisi: " + signingCert.ToString(); //lbTCKimlikNo.Text = TerminalSayisi } return(true); }
private SmartCardManager() { try { Console.WriteLine("New SmartCardManager will be created"); String[] terminals = SmartOp.getCardTerminals(); String terminal; //List<CardTypeConfig> cards = new SmartCardConfigParser().readConfig(); //CardType.applyCardTypeConfig(cards); if (terminals == null || terminals.Length == 0) { throw new SmartCardException("Kart takılı kart okuyucu bulunamadı"); } if (terminals.Length > 1) { throw new SmartCardException("Birden fazla kart okuyucu bulundu."); } Console.WriteLine("Kart okuyucu sayısı : " + terminals.Length); int index = 0; if (terminals.Length == 1) { terminal = terminals[index]; } else { //index = askOption(null, null, terminals, "Okuyucu Listesi", new String[] { "Tamam" }); terminal = terminals[index]; } Console.WriteLine("PKCS11 Smartcard will be created"); Pair <long, CardType> slotAndCardType = SmartOp.getSlotAndCardType(terminal); bsc = new P11SmartCard(slotAndCardType.getmObj2()); bsc.openSession(slotAndCardType.getmObj1()); mSerialNumber = StringUtil.ToString(bsc.getSerial()); mSlotCount = terminals.Length; } catch (SmartCardException e) { throw new SmartCardException("Kart Okunurken bir hata oluştu(SC).", e); } catch (PKCS11Exception e) { throw new SmartCardException("Kart okunurken bir hata oluştu(PKCS11).", e); } catch (IOException e) { throw new SmartCardException("Kart okunurken bir hata oluştu(IO).", e); } catch (Exception e) { throw new SmartCardException("Genel bir hata oluştu(E)", e); } }
private void button1_Click(object sender, EventArgs e) { String[] terminals = SmartOp.getCardTerminals(); if (terminals == null || terminals.Length == 0) { MesajiIsle("Kart takılı bir kart okuyucu bulunamadı-Kart Kontrol İşlemi", 1); return; } // eger tum kartlari kendisi kontrol edip oto. imzalayacaksa askoption calistirma, // for dongusunde tum kartlari ve kartlardaki tum sertifikalari gezip bunlari arraya, sonrasinda da tabloya at // imzalama asamasinda tckimlikno uyusmamasi gibi bir durum olursa ancak o zaman tum kartlari bir kez daha // dolasarak db tablodaki kart ve sertifikalarin slot nolarini yenile // *********************** // alt satirda hem kartlar hem sertifikalar hem ltrm class dolduruluyor SmartCardManagerTumunuOku scmgr = SmartCardManagerTumunuOku.getInstanceTumunuOku(); // *********************** { // sql olustur String SqlCumlesi = ""; SqlCumlesi = "Delete AkilliKartlar "; for (int i = 0; i < Program.ltrm.Count; i++) { SqlCumlesi += " insert into AkilliKartlar (FisNo, TerminalAdi,TCKimlikNo,AdiSoyadi,InsertDate, KartTipi, SlotID) values ('" + Convert.ToString(i + 1) + "','" + Program.ltrm[i].TerminalAdi + "','" + Program.ltrm[i].TCKimlikNo + "','" + Program.ltrm[i].AdiSoyadi + "', getdate(), '" + Program.ltrm[i].KartTipi + "', '" + Convert.ToInt64(Program.ltrm[i].SlotID) + "' )"; } if (Program.ltrm.Count > 0) { if (Program.ParamSQLServer == "") { MesajiIsle("SQL Server bağlantı bilgileri eksik. Kayıt işlemi yapılamadı.", 0); //return; } if (Program.ParamSQLUser == "") { MesajiIsle("SQL Server bağlantı bilgileri eksik. Kayıt işlemi yapılamadı.", 0); return; } if (Program.ParamSQLPassword == "") { MesajiIsle("SQL Server bağlantı bilgileri eksik. Kayıt işlemi yapılamadı.", 0); return; } // dbye kaydet SqlConnection SQLFormVeriBaglantisi = new SqlConnection(); SQLFormVeriBaglantisi.ConnectionString = "server=" + Program.ParamSQLServer + ";user="******";pwd=" + Program.ParamSQLPassword + ";database=konur;"; SQLFormVeriBaglantisi.Open(); SqlCommand qryVeriKaydet = new SqlCommand(SqlCumlesi, SQLFormVeriBaglantisi); qryVeriKaydet.ExecuteNonQuery(); SQLFormVeriBaglantisi.Close(); MessageBox.Show("Kayıt işlemi Tamamlandı", "Kayıt Bilgisi"); } } return; }
/* * * @throws SmartCardException */ /** * BaseSigner interface for the requested certificate. Do not forget to logout after your crypto * operation finished * @param aCardPIN * @param aCert * @return * @throws SmartCardException */ public SmartCardManager() { try { LOGGER.Debug("New SmartCardManager will be created"); String[] terminals = SmartOp.getCardTerminals(); String terminal; if (terminals == null || terminals.Length == 0) { MesajiIsle("Kart takılı kart okuyucu bulunamadı-SmartCardManager", 1); Program.KartOkuyucuYok = 1; return; // throw new SmartCardException("Kart takılı kart okuyucu bulunamadı"); } LOGGER.Debug("Kart okuyucu sayısı : " + terminals.Length); if (terminals.Length != Program.TerminalSayisi && Program.TerminalSayisi != 0) { MesajiIsle("Kart seçildikten sonra imzalama aşamasında yeni kart okuyucu takıldı.", 1); Program.KartOkuyucuYok = 1; return; } Program.TerminalSayisi = terminals.Length; int index = 0; if (terminals.Length == 1) { terminal = terminals[index]; } else { index = askOption(null, null, terminals, "Okuyucu Listesi", new String[] { "Tamam" }); terminal = terminals[index]; } Pair <long, CardType> slotAndCardType = SmartOp.getSlotAndCardType(terminal); bsc = new P11SmartCard(slotAndCardType.getmObj2()); bsc.openSession(slotAndCardType.getmObj1()); mSerialNumber = StringUtil.ToString(bsc.getSerial()); mSlotCount = terminals.Length; } catch (SmartCardException e) { throw e; } catch (PKCS11Exception e) { throw new SmartCardException("Pkcs11 exception", e); } catch (IOException e) { throw new SmartCardException("Smart Card IO exception - Detay bilgilerine bakınız", e); } }
public static SmartCardManager getInstance() { if (mSCManager == null) { mSCManager = new SmartCardManager(); return(mSCManager); } else { //Check is there any change try { //If there is a new card in the system, user will select a smartcard. //Create new SmartCard. if (mSCManager.getSlotCount() < SmartOp.getCardTerminals().Length) { LOGGER.Debug("New card pluged in to system"); mSCManager = null; return(getInstance()); } //If used card is removed, select new card. String availableSerial = null; try { availableSerial = StringUtil.ToString(mSCManager.getBasicSmartCard().getSerial()); } catch (SmartCardException ex) { LOGGER.Debug("Card removed"); mSCManager = null; return(getInstance()); } if (!mSCManager.getSelectedSerialNumber().Equals(availableSerial)) { LOGGER.Debug("Serial number changed. New card is placed to system"); mSCManager = null; return(getInstance()); } return(mSCManager); } catch (SmartCardException e) { mSCManager = null; throw; } } }
/** * * @throws SmartCardException */ private SmartCardManager() { try { LOGGER.Debug("New SmartCardManager will be created"); String[] terminals = SmartOp.getCardTerminals(); String terminal; if (terminals == null || terminals.Length == 0) { throw new SmartCardException("Kart takılı kart okuyucu bulunamadı"); } LOGGER.Debug("Kart okuyucu sayısı : " + terminals.Length); int index = 0; if (terminals.Length == 1) { terminal = terminals[index]; } else { index = askOption(null, null, terminals, "Okuyucu Listesi", new String[] { "Tamam" }); terminal = terminals[index]; } LOGGER.Debug("PKCS11 Smartcard will be created"); Pair <long, CardType> slotAndCardType = SmartOp.getSlotAndCardType(terminal); bsc = new P11SmartCard(slotAndCardType.getmObj2()); bsc.openSession(slotAndCardType.getmObj1()); mSerialNumber = StringUtil.ToString(bsc.getSerial()); mSlotCount = terminals.Length; } catch (SmartCardException e) { throw e; } catch (PKCS11Exception e) { throw new SmartCardException("Pkcs11 exception", e); } catch (IOException e) { throw new SmartCardException("Smart Card IO exception", e); } }
public bool KartveOkuyucuKontrol() { String[] terminals = SmartOp.getCardTerminals(); Program.TerminalSayisi = terminals.Length; if (terminals == null || terminals.Length == 0) { return(false); } SmartCardManager scmgr = SmartCardManager.getInstance(); { ECertificate signingCert = scmgr.getSignatureCertificate(true, false); LBLTCKIMLIK.Text = Bul(signingCert.ToString(), "SERIALNUMBER=", ","); LBLADISOYADI.Text = Bul(signingCert.ToString(), "CN=", ","); LBLSERIAL.Text = Bul(signingCert.ToString(), "Serial:", "Valid from").TrimStart(' '); LBLBASTARIH.Text = Bul(signingCert.ToString(), "Valid from", "to").TrimStart(' ').TrimEnd(' '); LBLBITTARIH.Text = Bul(signingCert.ToString(), " to", "Ca:").TrimStart(' ').TrimEnd(' '); DateTime bitis_tarihi = DateTime.Parse(LBLBITTARIH.Text); DateTime baslangic_tarihi = DateTime.Parse(LBLBASTARIH.Text); DateTime simdi = DateTime.Now; int kalangun = GunFarkikBul(simdi, bitis_tarihi); if (bitis_tarihi < simdi) { LBLKALANGUN.Text = "- " + kalangun.ToString(); LBLKALANGUN.ForeColor = Color.Red; } else { LBLKALANGUN.Text = kalangun.ToString(); } Program.SertifikaBilgisi = "Sertifika ve Sahiplik Bilgisi: " + signingCert.ToString(); } return(true); }
public string[] getTerminals() { return(SmartOp.getCardTerminals()); }
/* * * @throws SmartCardException */ /** * BaseSigner interface for the requested certificate. Do not forget to logout after your crypto * operation finished * @param aCardPIN * @param aCert * @return * @throws SmartCardException */ public SmartCardManager() { try { LOGGER.Debug("New SmartCardManager will be created"); String terminal; int index = 0; String[] terminals = SmartOp.getCardTerminals(); if (terminals == null || terminals.Length == 0) { MesajiIsle("Kart takılı kart okuyucu bulunamadı (SmartCardManager)", 1); Program.KartOkuyucuYok = 1; return; // throw new SmartCardException("Kart takılı kart okuyucu bulunamadı"); } LOGGER.Debug("Kart okuyucu sayısı : " + terminals.Length); if (terminals.Length != Program.TerminalSayisi && Program.TerminalSayisi != 0) { MesajiIsle("Kart seçildikten sonra imzalama aşamasında yeni kart okuyucu takıldı.", 1); Program.KartOkuyucuYok = 1; return; } // MesajiIsle("Bilgi 1 - Terminal: " + terminal, 0); try { // karttipi bastan parametre ile gelmisse if (Program.ParamCardType != "") { Program.ParamSlotID = SmartOp.findSlotNumber(CardTypeConverter.AsCardType(Program.ParamCardType)).ToString(); bsc = new P11SmartCard(CardTypeConverter.AsCardType(Program.ParamCardType)); mSerialNumber = StringUtil.ToString(bsc.getSerial(Convert.ToInt64(Program.ParamSlotID))); bsc.openSession(Convert.ToInt64(Program.ParamSlotID)); Program.CardType = Program.ParamCardType; } else { if (terminals.Length == 1) { terminal = terminals[index]; } else { index = askOption(null, null, terminals, "Okuyucu Listesi", new String[] { "Tamam" }); terminal = terminals[index]; } // burada try catch gerek olmadan kart tipi ve slot id tesbit ediliyor... // ama sadece akis icin calisiyor, safesign da calismadi Pair <long, CardType> slotAndCardType = SmartOp.getSlotAndCardType(terminal); // MesajiIsle("Bilgi 2 - Terminal: " + terminal + " SmartCard Type: " + slotAndCardType.getmObj2().ToString() + " SlotID: " + slotAndCardType.getmObj1().ToString(), 0); // bulunan kart type kullanilarak kart yapisi olusturuluyor bsc = new P11SmartCard(slotAndCardType.getmObj2()); // olusturulan kart yapisi bulunan slotid kullanilarak aciliyor bsc.openSession(slotAndCardType.getmObj1()); Program.ParamSlotID = slotAndCardType.getmObj1().ToString(); Program.CardType = slotAndCardType.getmObj2().ToString(); Program.Terminal = terminal; } } catch { // etugra //bsc = new P11SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.SAFESIGN); //bsc.openSession(52481); //MessageBox.Show(index.ToString() + " nolu terminal serino"); //MessageBox.Show(StringUtil.ToString(bsc.getSerial())); //MessageBox.Show("Serino gösterdi"); // continue; // bu slot id belirleme ve open session kismini, manuel imzalamada signerhelp icerisine aldim, yoksa // burada acilan sessioni gormuyordu bir sekilde. bu kisim sertifika okuma ozelligi cozulebilirse iptal edilebilir belki... long[] PresentSlots; // long[] PresentSerials; try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.AKIS); if (Program.ParamSlotID == "") { FindSlotID(); } string s = new string(sc.getSlotInfo(Convert.ToInt64(Program.ParamSlotID)).slotDescription); s = new string(sc.getSlotInfo(Convert.ToInt64(Program.ParamSlotID)).manufacturerID); s = sc.getSlotInfo(Convert.ToInt64(Program.ParamSlotID)).ToString(); // MesajiIsle("slotDescription (SlotID(" +Program.ParamSlotID+"): "+ s, 0); //Program.ParamSlotIndex = index.ToString(); Program.CardType = sc.getCardType().ToString(); bsc = new P11SmartCard(sc.getCardType()); // MesajiIsle("Bilgi 3 - SmartCard Type: " + sc.getCardType().ToString() + " SlotID: " + Program.ParamSlotID, 0); bsc.openSession(Convert.ToInt64(Program.ParamSlotID)); } catch { try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.SAFESIGN); if (Program.ParamSlotID == "") { FindSlotID(); } string s = new string(sc.getSlotInfo(Convert.ToInt64(Program.ParamSlotID)).slotDescription); // MesajiIsle("slotDescription (SlotID(" +Program.ParamSlotID+"): "+ s, 0); //Program.ParamSlotIndex = index.ToString(); Program.CardType = sc.getCardType().ToString(); bsc = new P11SmartCard(sc.getCardType()); // MesajiIsle("Bilgi 3 - SmartCard Type: " + sc.getCardType().ToString() + " SlotID: " + Program.ParamSlotID, 0); bsc.openSession(Convert.ToInt64(Program.ParamSlotID)); } catch { try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.GEMPLUS); } catch { try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.TKART); } catch { try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.ALADDIN); } catch { try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.SEFIROT); //PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al //for (m = 0; m < PresentSlots.Length; m++) //{ // ListSmartCard.Add(new P11SmartCard(sc.getCardType())); // ListSmartCard[index].openSession(PresentSlots[m]); // etugra icin 52481 // tekkartSerialNumber = StringUtil.ToString(ListSmartCard[index].getSerial()); // // sertifika getirme islemi // ImzaSertifikasiGetirTek(true, false, index); // PresentSlots[m].ToString(); // index = index + 1; //} } catch { } } } } } } if (sc != null) { PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // PresentSerials = sc.getTokenSerialNo(); // secim kutusu haline getirerek slotid al index = 0; // long SlotID = 0; if (PresentSlots.Length == 1) { Program.ParamSlotID = PresentSlots[index].ToString(); } else { Program.ParamSlotID = askOptionValue(null, null, PresentSlots, "Slot Listesi", new String[] { "Tamam" }); } // sc.getSlotInfo(slots[0]).slotDescription; string s = new string(sc.getSlotInfo(Convert.ToInt64(Program.ParamSlotID)).slotDescription); // MesajiIsle("slotDescription (SlotID(" +Program.ParamSlotID+"): "+ s, 0); //Program.ParamSlotIndex = index.ToString(); Program.CardType = sc.getCardType().ToString(); bsc = new P11SmartCard(sc.getCardType()); // MesajiIsle("Bilgi 3 - SmartCard Type: " + sc.getCardType().ToString() + " SlotID: " + Program.ParamSlotID, 0); bsc.openSession(Convert.ToInt64(Program.ParamSlotID)); //bsc.openSession(SlotID); //MessageBox.Show("bsc.login(5255)"); //bsc.login("5255"); //MessageBox.Show("login ok"); } else { MesajiIsle("Kart tipi belirlenemedi", 0); } } mSerialNumber = StringUtil.ToString(bsc.getSerial()); mSlotCount = terminals.Length; } catch (SmartCardException e) { throw e; } catch (PKCS11Exception e) { throw new SmartCardException("Pkcs11 exception", e); } catch (IOException e) { throw new SmartCardException("Smart Card IO exception - Detay bilgilerine bakınız", e); } }
/* * * @throws SmartCardException */ /** * BaseSigner interface for the requested certificate. Do not forget to logout after your crypto * operation finished * @param aCardPIN * @param aCert * @return * @throws SmartCardException */ // public delegate void tm(); public SmartCardManagerTumunuOku() { try { LOGGER.Debug("New SmartCardManagerToplu will be created"); String[] terminals = SmartOp.getCardTerminals(); if (terminals == null || terminals.Length == 0) { MesajiIsle("Kart takılı kart okuyucu bulunamadı-SmartCardManagerTumunuOku", 1); Program.KartOkuyucuYok = 1; return; // throw new SmartCardException("Kart takılı kart okuyucu bulunamadı"); } mSlotCount = terminals.Length; int index = 0; bsc = new List <IBaseSmartCard>(); Program.ltrm.Clear(); long[] PresentSlots; int m; //string SlotID; SmartCard sc; // kartlari turlerine gore denetleyip getSignatureCertificateTek tek bsc listesine ekleyip // TC, AdSoyad, SlotID ve CardType bilgilerini topla. terminal iptal... // yeni sekil tum kartlari bu sekilde okumayi dene //if (Program.ParamCardType != "") { // meltemde o oldugu icin sadece safesign gonderip onu toplamak yerine kart tiplerinin tümünü ardarda da deneyebiliriz... // bu zaten tum kart tipşerini ve slotlarini ciftler halinde getiriyor. guzel... 26.12.2015 ikazanci //List <Pair<long, CardType>> slotAndCardType = SmartOp.findCardTypesAndSlots(CardTypeConverter.AsCardType(Program.ParamCardType).getApplication()); //for (m = 0; m < slotAndCardType.Count; m++) //{ // SlotID = slotAndCardType[m].getmObj1().ToString(); // bsc.Add(new P11SmartCard(slotAndCardType[m].getmObj2())); // bsc[index].openSession(slotAndCardType[m].getmObj1()); // etugra icin 52481 // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial(Convert.ToInt64(SlotID)))); // // sertifika getir // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", slotAndCardType[m].getmObj2().ToString(), slotAndCardType[m].getmObj1().ToString()); // bsc[index].closeSession(); // index = index + 1; //} sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.SAFESIGN); PresentSlots = sc.getTokenPresentSlotList(); // getTokenPresentSlotList(); // tokenli slot listesini al for (m = 0; m < PresentSlots.Length; m++) { bsc.Add(new P11SmartCard(sc.getCardType())); bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // sertifika getir getSignatureCertificateTek(true, false, index); terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); index = index + 1; } } // ... // ... // yeni sekil sonu if (1 == 0) { //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.ALADDIN); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // bsc.Add(new P11SmartCard(sc.getCardType())); // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getir // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.AKIS); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // //MessageBox.Show(sc.getCardType().ToString() + " " + PresentSlots[m].ToString()); // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // // bsc[index].openSession(PresentSlots[m]); // var t = new tm(() => KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 500; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // DelayAction(1000, timer.Stop); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.SAFESIGN); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // //MessageBox.Show(sc.getCardType().ToString() + " " + PresentSlots[m].ToString()); // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // // bsc[index].openSession(PresentSlots[m]); // var t = new tm(() => KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 500; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // DelayAction(1000, timer.Stop); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.GEMPLUS); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // var t = new tm(() => SessionOpened = KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 5000; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.TKART); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // var t = new tm(() => SessionOpened = KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 5000; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.SEFIROT); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // var t = new tm(() => SessionOpened = KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 5000; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.AEPKEYPER); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // var t = new tm(() => SessionOpened = KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 5000; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.AKIS_KK); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // var t = new tm(() => SessionOpened = KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 5000; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.CARDOS); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // var t = new tm(() => SessionOpened = KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 5000; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.DATAKEY); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // var t = new tm(() => SessionOpened = KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 5000; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.KEYCORP); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // var t = new tm(() => SessionOpened = KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 5000; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.NCIPHER); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // var t = new tm(() => SessionOpened = KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 5000; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } //try //{ // sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.UTIMACO); // PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al // for (m = 0; m < PresentSlots.Length; m++) // { // bsc.Add(new P11SmartCard(sc.getCardType())); // try // { // SessionOpened = 0; // var t = new tm(() => SessionOpened = KartAc(index, PresentSlots[m])); // var timer = new System.Timers.Timer(); // timer.Interval = 5000; // timer.AutoReset = false; // timer.Start(); // timer.Elapsed += (sender, e) => timer_Elapsed(t); // t.BeginInvoke(null, null); // // bsc[index].openSession(PresentSlots[m]); // etugra icin 52481 // if (SessionOpened == 1) // { // mSerialNumber.Add(StringUtil.ToString(bsc[index].getSerial())); // // sertifika getirme islemi // getSignatureCertificateTek(true, false, index); // terminalekle(GetTcNo(mSignatureCert[index].ToString()), GetAdSoyad(mSignatureCert[index].ToString()), "", sc.getCardType().ToString(), PresentSlots[m].ToString()); // index = index + 1; // } // else // { // bsc.RemoveAt(index); // } // } // catch { bsc.RemoveAt(index); } // } //} //catch //{ } } // iptal edilen kisim sonu } catch (SmartCardException e) { MesajiIsle("Takılı bütün kartların listelemesi yapılamadı, muhtemelen sistemde farklı türde bir kart takılı: " + e.Message, 1); // throw e; } catch (PKCS11Exception e) { throw new SmartCardException("Pkcs11 exception", e); } catch (IOException e) { throw new SmartCardException("Smart Card IO exception - Detay bilgilerine bakınız", e); } }
/* * * @throws SmartCardException */ /** * BaseSigner interface for the requested certificate. Do not forget to logout after your crypto * operation finished * @param aCardPIN * @param aCert * @return * @throws SmartCardException */ public SmartCardManagerKimlikNodanSec(int desktop) { try { LOGGER.Debug("New SmartCardManager will be created"); String[] terminals = SmartOp.getCardTerminals(); if (terminals == null || terminals.Length == 0) { MesajiIsle("İçinde kart takılı bir kart okuyucu bulunamadı-SmartCardManagerKimlikNodanSec", 1); Program.KartOkuyucuYok = 1; return; // throw new SmartCardException("Kart takılı kart okuyucu bulunamadı"); } LOGGER.Debug("Kart okuyucu sayısı : " + terminals.Length); if (terminals.Length != Program.TerminalSayisi && Program.TerminalSayisi != 0) { MesajiIsle("Kart seçildikten sonra imzalama aşamasında yeni kart okuyucu takıldı.", 1); Program.KartOkuyucuYok = 1; return; } if (desktop == 0) { //******************************* // sadece parametre ile gelen slotID & karttipine session ac //******************************* // dbden oku MesajiIsle("ParamSQLServer:" + Program.ParamSQLServer + " " + Program.ParamSlotID, 0); String SqlCumlesi = ""; SqlCumlesi = "select * from AkilliKartlar where TCKimlikNo = '" + Program.ParamTCKimlikNo + "' and SlotID = " + Program.ParamSlotID; SqlConnection SQLFormVeriBaglantisi = new SqlConnection(); SQLFormVeriBaglantisi.ConnectionString = "server=" + Program.ParamSQLServer + ";user="******";pwd=" + Program.ParamSQLPassword + ";database=konur;"; SQLFormVeriBaglantisi.Open(); SqlCommand qryVeriOku = new SqlCommand(SqlCumlesi, SQLFormVeriBaglantisi); SqlDataReader reader = qryVeriOku.ExecuteReader(); string KayitliKartTipi = "", KayitliAdiSoyadi = "", KayitliPinKodu = ""; //while ( reader.Read(); KayitliKartTipi = reader["KartTipi"].ToString().Trim(); KayitliAdiSoyadi = reader["AdiSoyadi"].ToString().Trim(); reader.Close(); // ikinci veri okuma kismi // PIN kodunun teyidi SqlCumlesi = "select EimzaPin from TnmPersonel where TCKimlikNo = '" + Program.ParamTCKimlikNo + "' and isnull(EimzaPin,'') <> '' and CalismaDurumu = 'E' "; qryVeriOku.CommandText = SqlCumlesi; reader = qryVeriOku.ExecuteReader(); reader.Read(); KayitliPinKodu = reader["EimzaPin"].ToString().Trim(); reader.Close(); // baglantiyi kapat SQLFormVeriBaglantisi.Close(); if (KayitliKartTipi == "") { MesajiIsle("Kart Tipi kaydı AkilliKartlar tablosunda bulunamadı", 1); } if (KayitliPinKodu == "") { MesajiIsle("PIN Kodu kaydı Personel tablosunda bulunamadı. TCKimlikNo: " + Program.ParamTCKimlikNo, 1); } if (KayitliPinKodu != Program.ParamPin) { MesajiIsle("Bulunan PIN Kodu kaydı gelen PIN kodu ile eşleşmiyor. TnmPersonel PIN: " + KayitliPinKodu + " Param.PIN: " + Program.ParamPin + " TCKimlikNo: " + Program.ParamTCKimlikNo, 1); } MesajiIsle("KayitliKartTipi Okundu:" + KayitliKartTipi + " " + KayitliAdiSoyadi + "SlotID: " + Program.ParamSlotID, 0); // MesajiIsle("Secili SlotID:" + PTerminal, 0); try { bsc = new P11SmartCard(CardTypeConverter.AsCardType(KayitliKartTipi)); MesajiIsle("new P11SmartCard ok: " + KayitliKartTipi, 0); bsc.openSession(Convert.ToInt64(Program.ParamSlotID)); } catch { MesajiIsle("Kartı otomatik açmada hata oluştu:" + KayitliKartTipi + " " + KayitliAdiSoyadi, 0); //// etugra //bsc = new P11SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.SAFESIGN); //bsc.openSession(52481); ////MessageBox.Show(index.ToString() + " nolu terminal serino"); ////MessageBox.Show(StringUtil.ToString(bsc.getSerial())); ////MessageBox.Show("Serino gösterdi"); //// continue; } mSerialNumber = StringUtil.ToString(bsc.getSerial()); mSlotCount = terminals.Length; getSignatureCertificate(true, false); String Temp = mSignatureCert.ToString(); int startIndex1 = Temp.IndexOf("SERIALNUMBER="); //TC = Temp.Substring(startIndex1 + 13, 11); // adsoyad alma int startIndex2 = Temp.IndexOf("CN="); int endIndex = Temp.IndexOf(",", startIndex2); //Ad=Temp.Substring(startIndex2 + 3, endIndex - (startIndex2 + 3)); if (Program.ParamTCKimlikNo == Temp.Substring(startIndex1 + 13, 11) && Program.ParamAdiSoyadi == Temp.Substring(startIndex2 + 3, endIndex - (startIndex2 + 3))) { MesajiIsle("Otomatik olarak dogru karta konumlandi", 0); } else {// MesajiIsle("Dogru karta konumlanamadi. Karttaki TCNo ve Isim:" + // Temp.Substring(startIndex1 + 13, 11) +" "+ Temp.Substring(startIndex2 + 3, endIndex - (startIndex2 + 3))+ // ", Recetedeki Doktor TCNo ve Isim:" + Program.ParamTCKimlikNo + " " + Program.ParamAdiSoyadi, 1); } } else { // desktop = 1 ise // imzalama oncesi session acma kismi //******************************* // kart tipini deneyerek bul ve o kart tipine session ac //******************************* try { // sadece parametre ile gelen (giriste ilk timerda okunuyor ya) slotID & karttipine session ac bsc = new P11SmartCard(CardTypeConverter.AsCardType(Program.CardType)); bsc.openSession(Convert.ToInt64(Program.ParamSlotID)); // sonra tc, serial kontrolu falan yapmak lazim programa girip oto. kart okunduktan sonra kart degismis mi diye // .. // ... } catch { SmartCard sc = null; string KartTipi = ""; //, AdiSoyadi = "", TCKimlikNo = ""; // aslinda giriste okudugundan burada sadece giriste elde edilen terminal, slotid ve cardtype degerleri uzerinden baglanip // seri no kontrolu yapmali try sc catch kisimlarini kaldirmali sadece giriste birakmali... 11.12.2015 try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.AKIS); } catch { try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.SAFESIGN); } catch { try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.GEMPLUS); } catch { try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.TKART); } catch { try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.ALADDIN); } catch { try { sc = new SmartCard(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.SEFIROT); //PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al //for (m = 0; m < PresentSlots.Length; m++) //{ // ListSmartCard.Add(new P11SmartCard(sc.getCardType())); // ListSmartCard[index].openSession(PresentSlots[m]); // etugra icin 52481 // tekkartSerialNumber = StringUtil.ToString(ListSmartCard[index].getSerial()); // // sertifika getirme islemi // ImzaSertifikasiGetirTek(true, false, index); // PresentSlots[m].ToString(); // index = index + 1; //} } catch { } } } } } } if (sc != null) { // slotid tesbit et long[] PresentSlots; // long SlotID = 0; PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al if (PresentSlots.Length == 1) { Program.ParamSlotID = PresentSlots[0].ToString(); } else { Program.ParamSlotID = SmartCardManager.askOptionValue(null, null, PresentSlots, "Slot Listesi", new String[] { "Tamam" }); } KartTipi = sc.getCardType().ToString(); try { bsc = new P11SmartCard(sc.getCardType()); MesajiIsle("SmartCard Type: " + KartTipi + " SlotID: " + Program.ParamSlotID, 0); bsc.openSession(Convert.ToInt64(Program.ParamSlotID)); } catch { MesajiIsle("Kartı açmada hata oluştu. Kart Tipi: " + KartTipi + " SlotID: " + Program.ParamSlotID, 0); } } else { MesajiIsle("Kart tipi belirlenemedi", 0); } } //mSerialNumber = StringUtil.ToString(bsc.getSerial()); //mSlotCount = terminals.Length; getSignatureCertificate(true, false); String Temp = mSignatureCert.ToString(); // adsoyad alma (gereksiz... labela koymak istersen dursun, degilse sil...) 11.12.2015 //int startIndex1 = Temp.IndexOf("SERIALNUMBER="); //int startIndex2 = Temp.IndexOf("CN="); //int endIndex = Temp.IndexOf(",", startIndex2); //KartTipi = sc.getCardType().ToString(); //TCKimlikNo = Temp.Substring(startIndex1 + 13, 11); //AdiSoyadi = Temp.Substring(startIndex2 + 3, endIndex - (startIndex2 + 3)); } } catch (SmartCardException e) { throw e; } catch (PKCS11Exception e) { throw new SmartCardException("Pkcs11 exception", e); } catch (IOException e) { throw new SmartCardException("Smart Card IO exception - Detay bilgilerine bakınız", e); } }