E-İmza win 7 64 bit driver sorunu yaşayan var mı?

16,480 views
Skip to first unread message

Gökmen Soylu

unread,
Feb 26, 2013, 4:51:40 AM2/26/13
to sagli...@googlegroups.com
Arkadaşlar
e imza için kamu sm .net kütüphaneleri ile win7 32 bitte testlerimizi tamamladık. e-recete numarasını aldık buraya kadar her şey güzel ama 64 bit bilgisayarlarda kart okuyucu driveri yüklüyoruz akisi yüklüyoruz, aygıt yöneticisinde bilinmeyen akıllı kart diyor ve kodu çalıştırdığımızda SmartCardManager da SmartOp.getCardTerminals() metodu ile terminalleri listelediğimizde herhangi bir terminal görmüyor. belirteyim Akis okuyucuyu, kartı görüyor ve sertifika detayına kadar gösteriyor. acaba bu sıkıntı ile karşılaşan ve çözen var mı?

cagdask

unread,
Feb 26, 2013, 4:58:10 AM2/26/13
to sagli...@googlegroups.com
ma3api-managedPkcs11.dll ve System.Data.SQLite.dll dosyalarının 64bit versiyonları var. api klasörünün içinden çıkıyor. onlarla bir deneyin isterseniz.
 

26 Şubat 2013 Salı 11:51:40 UTC+2 tarihinde Gökmen Soylu yazdı:

Taha Ercan

unread,
Jun 16, 2014, 9:26:18 AM6/16/14
to sagli...@googlegroups.com
Merhaba,

Sorunsuz çalışan 32bit uygulamayı, büyük dosya imzalarında aldığım out of memory hatalarına karşın 64bit'e çevirmek istedim. ma3api-managedPkcs11.dll ve System.Data.SQLite.dll dosyalarının 64bit versiyonlarını referans olarak vermeme rağmen, SmartOp.findCardTypesAndSlots metodunda "C_Initialize - This object is not connected to a module." hatası alıyorum. 

Bu hatayı daha önce AKIS kart sürücünün yüklü olmadığı makinalarda 32bit uygulama ile de alıyordum. Sürücüyü yükleyince sorun düzeliyordu.
Şimdi kartın 64bit sürücüsü olsa da 64bit uygulama ile "C_Initialize - This object is not connected to a module." hatasını alıyorum.
Sorunu çözebilmiş miydiniz?

Saygılar.

26 Şubat 2013 Salı 11:58:10 UTC+2 tarihinde cagdask yazdı:

İbrahim KAZANCI

unread,
Jul 18, 2014, 11:24:48 AM7/18/14
to sagli...@googlegroups.com
Taha Bey,

Sorunu çözebildiniz mi?

Ben test sertifikaları ile sorun yaşamıyorum. E-Tuğra'nın gerçek kartı ile deneme yapmak istediğimde ise aynen dediğiniz gibi;


C_Initialize - This object is not connected to a module.

hatası alıyorum.

KamuSM'nin gönderdiği Full_lisans.xml dosyasını yükledim. sertifikadeposu.svt olması gereken yerde. Ancak durumda bir değişiklik yok.

Siz sorunu aştınız mı? Veya bu sorunla karşılaşıp çözen bir arkadaş var mı?

İbrahim Kazancı
Healthy HBYS


16 Haziran 2014 Pazartesi 16:26:18 UTC+3 tarihinde Taha Ercan yazdı:

Taha Ercan

unread,
Jul 22, 2014, 8:33:08 AM7/22/14
to sagli...@googlegroups.com
İbrahim Bey merhaba,

Eğer .net ile yazıyorsanız, app.config dosyasıda configuration tag'i altına aşağıdaki tagl'eri eklemeyi dener misiniz?
Kendi kullandığınız framework'e göre değiştirmeyi unutmayın. O kadar çok şey denedim ki hangi değişikliğin çözdüğünü net olarak hatırlamıyorum. Sanırım bunlar çözmüştü.

Kolay gelsin.

<startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/>
    </startup>

ve

 <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite"/>
      <add name="SQLite Data Provider" invariant="System.Data.SQLite"
    description=".Net Framework Data Provider for SQLite"
    type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
  </system.data>

İbrahim Kazanci

unread,
Jul 22, 2014, 10:55:39 PM7/22/14
to sagli...@googlegroups.com
Taha Bey,

Teşekkür ederim. Dediğiniz kısımlar mevcuttu zaten.

Acaba AKIS kartlar haricinde (mesela SAFESIGN için)  akıllı kartın türünü bir şekilde manuel olarak set etmek mi gerekiyor.

Normalde getSlotAndCardType veya findCardTypeAndSlot komutu ile takılı bütün kartları alması lazım. Ancak bir taraftanda KamuSM kılavuzunda

Eğer kullanıcıya kart tipine göre akıllı kartı seçtirmek isteniyorsa, SmartOp sınıfının findCardTypesAndSlots() ile bağlı olan bütün kartların slot numaralarını ve kart tiplerini alabilirsiniz.. Java 5 ve .NET'te ise akıllı kartın türü bilinmelidir....

ifadesi var. Bununla ilgili bir kod değişikliği yapmış mıydınız. Özellikle Pair<long, CardType> slotAndCardType = SmartOp.getSlotAndCardType(terminal); satırının yerine veya bunun öncesine CardType seçen, değiştiren bir kod eklemiş miydiniz?

Mesela SmartCard sc = new SmartCard(CardType.SAFESIGN); gibi...


İbrahim KAZANCI,

22 Temmuz 2014 Salı 15:33:08 UTC+3 tarihinde Taha Ercan yazdı:

atilla acar

unread,
Jul 23, 2014, 2:03:26 AM7/23/14
to sagli...@googlegroups.com
Merhaba,
64 bit dediğiniz için ve sadece e-Tuğra yazdığınız için yorum yapmadım ama Card Tipini set etmek derseniz ben şöyle yaptım.

//Örnek Uygulamadaki bu kodları kaldırdım
//Pair<long, CardType> slotAndCardType = SmartOp.getSlotAndCardType(
terminal);
               
//Yerine bunlar :)                              
long slotNum = SmartOp.findSlotNumber(CardType.TKART);
Pair<long, CardType> slotAndCardType = new Pair<long, CardType>();
slotAndCardType.setmObj1(slotNum);
slotAndCardType.setmObj2(CardType.TKART);

AKIS, TKART ve e-Güven (ALADDIN) için bu kodlar çalışıyor. E-Tuğra kullanan olmadığı için ve E-Tuğra firması bir deneme kartı bile gönderemediği için deneme fırsatım olmadı.
Personel'in kart tipini de veritabanında tutuyorum.

İyi Çalışmalar.



--
Bu iletiyi Google Grupları'ndaki "Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için saglik_net+...@googlegroups.com adresine e-posta gönderin.
Daha fazla seçenek için https://groups.google.com/d/optout adresini ziyaret edin.



--
Atilla ACAR
Software Engineer
Monad Software&Consulting

Hacettepe Teknokent 1 Nolu AR-GE Binası
No:3 06800 Beytepe/ANKARA/Türkiye

Tel: +90 0312 299 23 60
Fax: +90 0312 299 23 58

Taha Ercan

unread,
Jul 23, 2014, 2:04:12 AM7/23/14
to sagli...@googlegroups.com

İbrahim Bey,

Esya kütüphanesini e-Defter uygulaması için kullanacağız. Böyle olunca sadece mali mühür ile (yani KAMUSM tarafından sağlanan akis kart) çalışmak bizim için yeterli oluyor.
Safesign ile deneme yapmadık. Ama problem alınan mesajdan anlaşıldığı kadarıyla driver problemi gibi duruyor.

Benim kullanım şeklim, karttipini findCardTypesAndSlots fonksiyonundan almak. Şu şekilde (vb.net):

Dim akilliKartListesi As List(Of tr.gov.tubitak.uekae.esya.api.common.util.bag.Pair(Of Long, tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType))
akilliKartListesi = tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.SmartOp.findCardTypesAndSlots(tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType.Application.ESIGNATURE)
'Aynı zamanda bilgisayarda birden fazla kart olmasına karşın ekranda comboAkilliKart nesnesini doldurup kullanıcıya seçtiriyorum. 
Dim slotAndCardType As tr.gov.tubitak.uekae.esya.api.common.util.bag.Pair(Of Long, tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.CardType) = akilliKartListesi(comboAkilliKart.SelectedIndex)
Dim slot As Long = slotAndCardType.getmObj1
Dim sc As tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.SmartCard = New tr.gov.tubitak.uekae.esya.api.smartcard.pkcs11.SmartCard(slotAndCardType.getmObj2)

Umarım yardımcı olur.

İbrahim KAZANCI

unread,
Jul 24, 2014, 8:16:44 AM7/24/14
to sagli...@googlegroups.com
Atilla Bey, Taha Bey,

Verdiğiniz bilgiler için çok teşekkür ederim.

FindCardTypesAndSlots aynen getSlotAndCardType gibi hataya sebep oluyor. (e-tuğra kart takılı ise)

findSlotNumber(CardType.TKART); ise hata vermeden işlem yapmaya izin veriyor.



İbrahim Kazancı



23 Temmuz 2014 Çarşamba 09:04:12 UTC+3 tarihinde Taha Ercan yazdı:

Erhan Acunal

unread,
Sep 1, 2014, 9:30:24 AM9/1/14
to sagli...@googlegroups.com

Merhaba;

E-Tuğra için şu şekilde bir ayar yapmak zorunda kalmıştık, paylaşmak istedim. tr.gov.tubitak.uekae.esya.api.smartcard.winscard.WinsCard sınıfının altında getAtr diye bir method var bu takılı olan okuyucunun atr değerini veriyor. Bu değeri smartcard-config.xml adında bir dosyası var, şu satırı bulun
<card-type name="ALADDIN"> ve altına <atr value="methoddan gelen atr değeri buraya" /> şeklinde bir alt eleman ekleyin. 

smartcard-config.xml dosyasını kullanabilmek içinde tabi biraz ekstra gerekiyor, paylaşacağım kodu ben static ctor'a ekledim, bir kere yapmak yetiyor

SmartCardConfigParser parser = new SmartCardConfigParser();
var cards = parser.readConfig();
CardType.applyCardTypeConfig( cards );

bu sınıf direk çalıştırılan yolda smartcard-config.xml dosyasını arıyor ve yüklüyor, daha sonra da CardType.applyCardTypeConfig( cards ); ile de birleştirme yapılıyor. Ben bunları yaparak C_Initialize - This object is not connected to a module. hatasını çözmüştüm, umarım sizinde işinizi görür.

Dursun Çevik

unread,
Sep 2, 2014, 7:12:31 AM9/2/14
to sagli...@googlegroups.com
Merhaba
Düzenleme yaptığınız kısımdaki kodları bizimle de paylaşabilir misiniz?
Aynı yerde takıldık ta :)

24 Temmuz 2014 Perşembe 15:16:44 UTC+3 tarihinde İbrahim KAZANCI yazdı:
Message has been deleted

Dursun Çevik

unread,
Sep 2, 2014, 8:27:04 AM9/2/14
to sagli...@googlegroups.com
Cevapladığınız için teşekkürler
ancak
NES sağlayıcım Turktrust, kart tipi Akis ve atr değeri de config dosyasında var.

İbrahim bey in çözümü bizim için uygun olacak zannedersem.
İbrahim bey de yazarsa işimiz hızlanır :)


2 Eylül 2014 Salı 14:28:48 UTC+3 tarihinde Erhan Acunal yazdı:
Merhaba

Kodu paylaştığımı düşünüyorum :) 

SmartCardConfigParser parser = new SmartCardConfigParser();
var cards = parser.readConfig();
CardType.applyCardTypeConfig( cards );

Yukarıdaki kodu program ilk açıldığında bir kere çalışırsa yeterli oluyor, onun dışında farklı bir kod kullanmadım. Atr değerini almak içinde gerekli methodu aşağıda veriyorum.
 
       public string AtrDegeri( string terminalAdi ) {
            var atr = WinsCard.getAtr( terminalAdi );
            if ( atr == null )
                return string.Empty;
            else
                return BitConverter.ToString( atr ).Replace( "-", string.Empty );
        }

smartcard-config.xml de ekte var.


2 Eylül 2014 Salı 14:12:31 UTC+3 tarihinde Dursun Çevik yazdı:

İbrahim KAZANCI

unread,
Sep 3, 2014, 8:33:39 AM9/3/14
to sagli...@googlegroups.com
Dursun Bey,

Aslında KamuSM kodları kullanıldığında AKIS ile sorun yaşamadım. Ama SAFESIGN için hata mesajını nasıl aştığımı söyleyeyim. (Bu kod ile KamuSM, ETuğra ve EGüven kartlarını  çalıştırabiliyorum):

Kullandığım ana metod
                    bsc = new P11SmartCard(...); metodu. Oluşturduğunuz sürece göre bunu farklı şekillerde kullanabilirsiniz.

Bir seçenek, Atilla Bey'in dediği gibi kartın tipini önceden bilmek ile ilgili. Tipi önceden biliyorsanız aşağıdaki yöntemle o komutu hatasız geçiyorsunuz. Aşağıdaki kısım SmartCardManager.cs içerisinde "public SmartCardManager()" altında yer alıyor:

                try
               
{

                   
Pair<long, CardType> slotAndCardType = SmartOp.getSlotAndCardType(terminal);

                    bsc
= new P11SmartCard(slotAndCardType.getmObj2());
                    bsc
.openSession(slotAndCardType.getmObj1());
               
}
               
catch
               
{
                 
// ekleyeceğimiz ekstra kodun baslangici...


komut grubuna eşdeğer. İsterseniz bu kısmı iptal etmeden üstteki gibi try bloğu içine alıp sorun ile karşılaşıldığında catch'den sonra alttaki kısmı çalıştırabilirsiniz.

                   
                   
SmartCard sc;
                   
long[] PresentSlots;
                   
sc = new SmartCard(CardTypeConverter.AsCardType(KayitliKartTipi));
                   
PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al
                   
// secim kutusu haline getirerek slotid al
                    index
= 0;
                   
long SlotID = 0;
                   
if (PresentSlots.Length == 1)
                       
SlotID = PresentSlots[index];
                   
else
                   
{
                       
SlotID = Convert.ToInt64(askOptionValue(null, null, PresentSlots, "Slot Listesi", new String[] { "Tamam" }));
                   
}
                    bsc
= new P11SmartCard(CardTypeConverter.AsCardType(KayitliKartTipi));
                    bsc
.openSession(SlotID);
                 
} // catch sonu
                 
// normal koda devam....
                 mSerialNumber
= StringUtil.ToString(bsc.getSerial());


CardTypeConverter.AsCardType metodunu da şöyle tanımladım (Böylece mesela siz kart tipini "AKIS" gönderince CardType.AKIS döndürüyor, bunu program.cs içine ekleyebilirsiniz) :

   public static class CardTypeConverter
   
{
       
public static CardType AsCardType(string cardtype)
       
{
             
switch(cardtype)
             
{
                   
case "AEPKEYPER": return CardType.AEPKEYPER;
                   
case "AKIS": return CardType.AKIS;
                   
case "AKIS_KK": return CardType.AKIS_KK;
                   
case "ALADDIN": return CardType.ALADDIN;
                   
case "CARDOS": return CardType.CARDOS;
                   
case "DATAKEY": return CardType.DATAKEY;
                   
case "GEMPLUS": return CardType.GEMPLUS;
                   
case "KEYCORP": return CardType.KEYCORP;
                   
case "NCIPHER": return CardType.NCIPHER;
                   
case "SAFESIGN": return CardType.SAFESIGN;
                   
case "SEFIROT": return CardType.SEFIROT;
                   
case "TKART": return CardType.TKART;
                   
case "UNKNOWN": return CardType.UNKNOWN;
                   
case "UTIMACO": return CardType.UTIMACO;
                 
default: return CardType.UNKNOWN;
             
}
       
}
   
}

İkinci seçenek ise Try blokları içerisinde sırayla tüm kartları denemek...

SmartCard sc;
long[] PresentSlots;

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{}
...
...

sonra aşağıdaki komuttan itibaren -üstteki çözümdeki gibi- devam edilebilir.
   PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al
...
...


Erhan Bey'in yöntemi de kullanılabilir. Benim kullandığım çözüm bu. Yol gösterenlere tekrar teşekkür ederim. Umarım faydası olur.

İbrahim KAZANCI
Healthy HBYS


2 Eylül 2014 Salı 15:27:04 UTC+3 tarihinde Dursun Çevik yazdı:

Dursun Çevik

unread,
Sep 5, 2014, 4:46:02 AM9/5/14
to sagli...@googlegroups.com
Açık ve güzel açıklamınız için teşekkürler ancak hatadan kurtulamadım.
işletim sistemim windows 7 64 bit.
project properties inden platform target ve Target Framework u ne şekilde ayarlamamız gerekiyor
app.config e dokunmamız gerekiyor mu?

3 Eylül 2014 Çarşamba 15:33:39 UTC+3 tarihinde İbrahim KAZANCI yazdı:
...

İbrahim Kazanci

unread,
Sep 8, 2014, 4:16:09 AM9/8/14
to sagli...@googlegroups.com
Dursun Bey,


Ben 64 bit sistemlerde de 32 bit dll'leri kullandım ve bu bakımdan bir sorun yaşamadım. 32 bit olarak hazırladığım tek yazılım her iki sistemde de çalışıyor.

App.config şöyle:

<?xml version="1.0"?>
<configuration>
 
<startup useLegacyV2RuntimeActivationPolicy="true">
 
<supportedRuntime version="v2.0.50727"/></startup>

 
<system.data>
   
<DbProviderFactories>
     
<remove invariant="System.Data.SQLite"/>
     
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/>
   
</DbProviderFactories>
 
</system.data>
</configuration>



İbrahim KAZANCI


5 Eylül 2014 Cuma 11:46:02 UTC+3 tarihinde Dursun Çevik yazdı:

Dursun Çevik

unread,
Sep 8, 2014, 1:20:09 PM9/8/14
to sagli...@googlegroups.com
Çok teşekkürler
Target ları X86 seçip
verdiğiniz app.config i de kullanınca çalışır hale geldi.
hatta 
Pair<long, CardType> slotAndCardType = SmartOp.getSlotAndCardType(terminal);
kısmı catch e düşmeden doğrudan çalıştı.


8 Eylül 2014 Pazartesi 11:16:09 UTC+3 tarihinde İbrahim Kazanci yazdı:

yener yılmaz

unread,
Apr 15, 2015, 9:04:37 AM4/15/15
to sagli...@googlegroups.com
Dursun Bey İyi çalışmalar,
C_Initialize - This object is not connected to a module. hatası ile ilgili şöyle bir sorun yaşamaktayım. windows server 2008 64bit lik bir sunucuda e-Defter çalışması ile ilgili bir windows programım ve bir windows servis programı kurulu. Windows programında da bu hatayı almaktaydım yukarıdaki yazıları inceleyerek windows projesindeki sorunu çözebilidim.(app.config ve target  değişikliği). ancak windows servis de aldığım hatayı bir türlü aşamıyorum.
yadımlarınızı rica ediyorum.
Kolay Gelsin ...

yener yılmaz

unread,
Apr 15, 2015, 11:18:00 AM4/15/15
to sagli...@googlegroups.com
Windows servis projesinde de X86 ile derleyip app.config dosyasını güncellediğimizde sorun yaşamıyoruz ancak x86 ile derlendiğinde OutofMemmory hatasını almaktayız. Bu hatanın çözümü için ma3api-managedPkcs11.dll ve System.Data.SQLite.dll dlllerinin 64bit versiyonlarıyla derlememiz gerekiyor. ama bu seferde yine C_Initialize - This object is not connected to a module hatası alıyorum. yani çok can sıkıcı bir kısır döngüye girmiş durumdayım :).
Bu konuda yardımlarınızı rica ediyorum.
Kolay Gelsin ...

İsmail Kocacan

unread,
Apr 16, 2015, 3:14:36 AM4/16/15
to sagli...@googlegroups.com
apinin pkcs wrapper'larını kullanarak mı imzalama yapmaya yapmaya çalışıyorsunuz ?
yoksa kamusm tarafından üst seviye sınıflarını kullanarak mı imza atmaya çalışıyorsunuz ?


15 Nisan 2015 Çarşamba 18:18:00 UTC+3 tarihinde yener yılmaz yazdı:

yener yılmaz

unread,
Apr 16, 2015, 3:53:49 AM4/16/15
to sagli...@googlegroups.com
İsmail bey selamlar,
Kamu sm apilerini kullanıyorum. ilgili library leri kamu sm web adresinden indirmiştim.
dosya isimleri aşağıdaki gibi.
X86 dizini
asn1rt.dll, 
log4net.dll, 
ma3api-asn.dll, 
ma3api-certstore.dll, 
ma3api-certvalidation.dll, 
ma3api-cmssignature.dll, 
ma3api-common.dll, 
ma3api-crypto.dll, 
ma3api-crypto-bouncyprovider.dll, 
ma3api-iaik_wrapper.dll, 
ma3api-infra.dll,
ma3api-managedPkcs11.dll, 
ma3api-mssclient.dll, 
ma3api-mssclient-aveaprovider.dll, 
ma3api-mssclient-turkcellprovider.dll, 
ma3api-pkcs11net.dll, 
ma3api-signature.dll, 
ma3api-smartcard.dll, 
ma3api-xmlsignature.dll, 
nunit.framework.dll, 
System.Data.SQLite.dll

X64 Dizini
ma3api-managedPkcs11.dll,
System.Data.SQLite.dll

ilk önce imzalanacak data çok büyük olmadığından X86 dizininde yazdıklarımı referans ederek programı çalıştırmıştım bir sorun çıkmadı daha sonra büyük bir data imzalanmaya çalışıldığında OutOfMemory hatası almaya başladım bende X64 dizinindeki 2 dll i referans ederek programı çalıştırdım.

ancak programı(windows servis) windows server 2008 e kurduğumda c_initialize - this object is not connected to a module hatası almaya başladım. 
Bunun üzerinde app.config dosyasına 
<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v3.5" sku=".NETFramework,Version=v3.5.1"/>
  </startup>

  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite"/>
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
  </system.data>
taglarını ilave ederek tekrar denedim malesef tekrar c_initialize - this object is not connected to a module hatasını almaya devam ettim.
projeyi X86 ile derlediğimde ise c_initialize - this object is not connected to a module hatasını geçiyor ama büyük datada OutOfMemory hatasına geri dönüyorum

Sanırım uzun bir özet oldu :)
ilginize teşekkür ediyorum.
Kolay Gelsin ...

İsmail Kocacan

unread,
Apr 16, 2015, 4:44:21 AM4/16/15
to sagli...@googlegroups.com
tr.gov.tubitak.uekae.esya.api.xmlsignature.XMLSignature şu sınıfı kullanarak mı imzalama yapıyorsunuz ?

--
Bu iletiyi Google Grupları'ndaki "Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için saglik_net+...@googlegroups.com adresine e-posta gönderin.
Daha fazla seçenek için https://groups.google.com/d/optout adresini ziyaret edin.

İsmail Kocacan

unread,
Apr 16, 2015, 4:44:38 AM4/16/15
to sagli...@googlegroups.com
tr.gov.tubitak.uekae.esya.api.xmlsignature.XMLSignature şu sınıfı kullanarak mı imzalama yapıyorsunuz ?

16 Nisan 2015 Perşembe 10:53:49 UTC+3 tarihinde yener yılmaz yazdı:

yener yılmaz

unread,
Apr 16, 2015, 4:58:02 AM4/16/15
to sagli...@googlegroups.com
Evet ismail Bey
tr.gov.tubitak.uekae.esya.api.xmlsignature.XMLSignature sınıfı ile imzalama yapıyorum.
teşekkürler ...

sercan oztorun

unread,
Jun 18, 2015, 9:01:14 AM6/18/15
to sagli...@googlegroups.com
Herkese merhabalar İbrahim beyin açıkladığı gibi
Pair<longCardType> slotAndCardType = SmartOp.getSlotAndCardType(terminal);
 bu kısım yorum içinde ve try-catch blokları halinde ibrahim beyin yolladığı kodu yerine yazdım fakat hata hala düzelmedi en başta da bunu yaptıktan sonra da bu hatayı almaktayım .
Hata : An unhandled exception of type 'iaik.pkcs.pkcs11.wrapper.PKCS11RuntimeException' occurred in ma3api-managedPkcs11.dll

Additional information: C_Initialize - This object is not connected to a module. Acaba bu soruna bir çözüm sunabilecek birileri varsa şimdiden çok teşekkür ederim .
Ayrıca düzenlenen ve şu an çalışan bir kaynak kodu olanınız varsa bi iki birşey sormak isterim . Not : Kullandığım e-imza modülü e-Tugra ya aittir .

26 Şubat 2013 Salı 11:51:40 UTC+2 tarihinde Gökmen Soylu yazdı:
Arkadaşlar

nazim hatipoglu

unread,
Dec 23, 2015, 8:22:49 AM12/23/15
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Bu hatayı çözebildiniz mi ?

18 Haziran 2015 Perşembe 16:01:14 UTC+3 tarihinde sercan oztorun yazdı:

İbrahim KAZANCI

unread,
Dec 24, 2015, 8:47:41 AM12/24/15
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Nazım Bey,

Çözen var mı bilmiyorum ama bugün kamusm'den gelen cevapta, terminal üzerinden giderek kart tipini bilmeden kartta session açmanın garantili bir yolu olmadığına dair cevap geldi. Ben bunu try catch blokları ile tek tek kartları deneyerek aşmıştım ancak, sistemde kart varolmasa da eğer bir kartın sürücüsü yüklü ise kartı var gibi görüyor ve bu tip durumlarda opensession aşamasında donup kalabiliyor ve exception da vermediği için try catch blokları da işe yaramayabiliyor.

Bahsettiğiniz hata anladığım kadarıyla AKIS yerine farklı kartlarla elde edilen terminal verisi üzerinden (mesela SAFESIGN) session açılmaya çalışıldığında oluşuyor. ben
Pair<longCardType> slotAndCardType = SmartOp.getSlotAndCardType(terminal);
komutunu AKIS dışındaki kartlarda çalıştıramadım. Bahsettiğim gibi Try Catch normal şartlarda çalışsa da hatalı durumlar oluşabileceğini görüyorum. Atilla Bey'in uyguladığı şekilde bir defalığına doktorun kart tipini kaydedip sonra aşağıdaki gibi bir yöntem ile ilgili kart tipi üzerinde bsc nesnesini oluşturarak session açmaya yöneldim. Sanırım böyle daha temiz olacak... Buraya tek bir exception konup hata oluşması durumnda karti tipinin kontol edilmesi istenebilir.

                        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));

Benim söyleyebileceğim şimdilik bu kadar...

İbrahim KAZANCI


23 Aralık 2015 Çarşamba 15:22:49 UTC+2 tarihinde nazim hatipoglu yazdı:

atilla acar

unread,
Dec 24, 2015, 8:57:21 AM12/24/15
to sagli...@googlegroups.com
Merhaba,
Konu ile alakasız olacak ama
E-Tuğra'nın kart tipi SAFESIGN'mı bilgisi olan var mı?
E-Tuğra kartının imzager ile de göremiyorum, diğer kartlarda böyle bir sorunum yoktu,
Tübitak apiler ile imza atmaya kalktığımda CKR_SESSION_HANDLE_INVALID hatası alıyorum.
Bu hatayı alıp çözebilen var mı?


--
Bu iletiyi Google Grupları'ndaki "Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için saglik_net+...@googlegroups.com adresine e-posta gönderin.
Daha fazla seçenek için https://groups.google.com/d/optout adresini ziyaret edin.



--

İbrahim KAZANCI

unread,
Dec 24, 2015, 2:42:44 PM12/24/15
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin, atill...@monadyazilim.com
Atilla Bey,

E-Tuğra'nın benim gördüğüm kartları SAFESIGN'dı. Bir kaç kartını gördüm. Onları üstte yazdığım kod ile okuyabiliyorum. Yani baştan kart tipi olarak SAFESIGN belirtirseniz okunabiliyor.
Yukarıdaki kodu daha net yazmak gerekirse aşağıdaki gibi;

SlotID = SmartOp.findSlotNumber(CardType.SAFESIGN).ToString();
bsc = new P11SmartCard(CardType.SAFESIGN);
bsc.openSession(Convert.ToInt64(SlotID));


24 Aralık 2015 Perşembe 15:57:21 UTC+2 tarihinde atilla acar yazdı:

Fatih Göncü - Ark Bilişim Octomed

unread,
Dec 28, 2015, 3:06:58 AM12/28/15
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin, atill...@monadyazilim.com
xp makina kullanan var mı arkadaşlar.
xp makinalar daa bizde sorun çıktı henüz tam incelemedim ama

24 Aralık 2015 Perşembe 21:42:44 UTC+2 tarihinde İbrahim KAZANCI yazdı:

atilla acar

unread,
Dec 28, 2015, 3:09:33 AM12/28/15
to sagli...@googlegroups.com
Teşekkür ederim, yani neden olduğunu anlamadım ama imza-ger'de çalışmıyor.
Bazı XP makinalarda sorun oluyor, SP3 ile deneyince de devam ediyor mu?

Fatih Göncü

unread,
Dec 28, 2015, 3:19:53 AM12/28/15
to sagli...@googlegroups.com

Birazdan bakıcam daha bakmadım. Xp makine getirmelerini bekliyorum.

Üzerinde Sp kaç var bilmiyorum açıkçası

İbrahim KAZANCI

unread,
Dec 28, 2015, 9:11:25 AM12/28/15
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Bende XP SP3 ile sorun çıkmadı. Şu an çalışıyor...

28 Aralık 2015 Pazartesi 10:19:53 UTC+2 tarihinde Fatih Göncü - Ark Bilişim Octomed yazdı:

atilla acar

unread,
Dec 30, 2015, 12:26:41 PM12/30/15
to sagli...@googlegroups.com
E-Tuğra ile ilgili sorunu buldum, E-Tuğra (SAFESIGN) diğer kartlar gibi değil. Her imza atmaya kalktığımda taze açılmış bir session'a ihtiyaç duyuyor ve imza atınca bu session'u kapatıyor.
Böyle olunca her imzadan önce eğer E-Tuğra ise tekrar session açmak zorunda kalıyorum, her seferinde session açınca da süre uzuyor (session açmak 3-4 saniye).
AKIS ile 1-2 saniye de imza atarken , e-tuğra ile bu süre 4-5 saniye oluyor.

Sizde de bu durum bu şekilde mi? Yoksa atladığım birşey mi var?
iyi çalışmalar.

ESY - Entegre Sağlık Yazılımları

unread,
Feb 3, 2016, 6:55:59 AM2/3/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Merhaba, KamuSM nin dağıttığı MİLKO kart okuyucu kullanan var mı?
Bende "C_Initialize - This object is not connected to a module" şeklinde bir hata dönüyor.
AkisKart yazılımı ile sertifikayı görebiliyorum.

İyi çalışmalar.


Message has been deleted

Levent

unread,
Mar 15, 2016, 3:55:52 AM3/15/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
merhaba, sorununuza çözüm bulabildiniz mi?

3 Şubat 2016 Çarşamba 13:55:59 UTC+2 tarihinde ESY - Entegre Sağlık Yazılımları yazdı:

ESY - Entegre Sağlık Yazılımları

unread,
Mar 18, 2016, 5:33:44 AM3/18/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Merhaba,
Evet, eski kart (ACS) sürücülerini kaldırdık, yazılımda herhangi bir değişiklik yapmadan çalıştırabildik.

15 Mart 2016 Salı 09:55:52 UTC+2 tarihinde Levent yazdı:

Murat Şahin

unread,
Mar 25, 2016, 9:22:35 AM3/25/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Hocam Merhaba ; 

Öncelikle bu sorun hem java hem de kullanılan browser 32 bit olmasından kaynaklı 64 bit sistemlerde hem 64 hem 32 bit java 7u60 versiyonu yüklendikten sonra güvenlik ayarlarını kapatıp çalıştıra bilirsiniz ancak öncelikle javanın test applet işlemlerini yapmnız gerekiyor dilerim sorununuz çözülür 

Caner Altuntas

unread,
Mar 30, 2016, 9:26:06 AM3/30/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Merhaba;
Benim milko cihazım Windows 7 32bit ve 64bit te imza işlemi yapamıyorum, çünkü cihaz aygıt yöneticisinde hata veriyor. Ama aynı cihazla Windows 8 32bit veya 64bitte bir sorun olmuyor. Bu sorunu bütün windows 7 lerde yaşıyorum. format atsam dahi sorun devam ediyor. Sorunla ilgili kamu-sm ye defalarca mail attım ne söylense yaptım ama çözüm bulamadık. En sonunda cihaz değişimine kadar geldi sorun.
Ekran görüntüleri aşağıdadır.

Turgut Taspinar

unread,
Mar 31, 2016, 5:04:24 AM3/31/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Normalde, Milko 'lar tak-kullan aygıtlardır. Ama, kamusm 'nin sitesinde ek olarak driver dosyası da mevcuttur. Isterseniz ordaki sürücüyü üzerine zorla yükleme ile yükleyip bir deneyin. Dün, o cihazdan geldi bir hekimimize ve hiçbir sorun yaşamadık.

Caner Altuntas

unread,
Mar 31, 2016, 6:43:52 AM3/31/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Bilgisayar Windows 8 yada windows 10 muydu?

31 Mart 2016 Perşembe 11:04:24 UTC+2 tarihinde Turgut Taspinar yazdı:

Turgut Taspinar

unread,
Mar 31, 2016, 7:11:44 AM3/31/16
to sagli...@googlegroups.com
Win7 64 (SP1 yüklüdür)

Caner Altuntas

unread,
Mar 31, 2016, 9:07:05 AM3/31/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Allah allah anlamadım gitti. Bende ekran görüntüsü attığım hatayı veriyor yaklaşık 30 makinada. Başka pc lerde başka milko cihazlarını da deniyorum, o bilgisayara format atıp yine deniyorum yine de linkteki hatayı alıyorum. http://i.hizliresim.com/MpRPE1.png


31 Mart 2016 Perşembe 13:11:44 UTC+2 tarihinde Turgut Taspinar yazdı:
Win7 64 (SP1 yüklüdür)

Can Burak ALAKUŞ

unread,
May 10, 2016, 4:28:11 AM5/10/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Merhaba, yazılanların hepsini okudum ve önerilerin çoğunu hepsini yapmama rağmen "c_Initialize - This object is not connected to a module."  hatasını alıyorum. smartop tan find içeren methodların hepsi bu hatayı veriyor? Web.config e yazılanları ekledim yinede bir değişiklik olmadı. Bu sonunu alıpta çözen varmı acaba?

naci ülker

unread,
May 10, 2016, 5:59:40 PM5/10/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Can bey aldığınız hataya benzer hatayı bede almıştım.
Şöyle çözmüştüm; Projedeki lib kütüphanesindeki dll dosyalarını sadece 32 olanlarını projeye dahil ettim. bundan öncede projeki referans adilen
tüm 32 bit yada 64 bit dll kaldırdım projeyi build ettikten sonra tekrar sadece 32 bit olanları referas ettim
web configde;
<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite"/>
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/>
    </DbProviderFactories>
  </system.data>

ayarlamasını yaptım birde target platformu x86 olarak yapıp tekrar derledim çalıştı.
umarım sizdede çalışır.


10 Mayıs 2016 Salı 11:28:11 UTC+3 tarihinde Can Burak ALAKUŞ yazdı:

Can Burak ALAKUŞ

unread,
May 12, 2016, 4:12:28 AM5/12/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Merhaba Naci Bey,
Dediklerinizi yaptım zaten ama AKIS kartlarda bir türlü olmuyor. E-Tuğranın kartlarında SAFESIGN kart tipi seçince buluyor ve imzalayabiliyor. AKIS kartlarında kart tipini hangisi seçersem seçeyim o hata çıkıyor. Çözemedim gitti

11 Mayıs 2016 Çarşamba 00:59:40 UTC+3 tarihinde naci ülker yazdı:
Message has been deleted

İsmail ÖZER

unread,
May 31, 2016, 4:00:37 PM5/31/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Merhaba
Mevcut dll Yeni nesil kartların tipini tespit edememektedir.
Aşağıda yaptığım düzenleme ile sorununuz çözülecektir. 


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(nullnull, terminals, "Okuyucu Listesi"new String[] { "Tamam" });
            terminal = terminals[index];
        }
        LOGGER.Debug("PKCS11 Smartcard will be created");
        Pair<longCardType> slotAndCardType = new   Pair<longCardType>();
        
                        ///////////////////////////////////////
        //ism Code açıklama: verilen tüm kart tipleri taranarak uygun kart bulunur
        //Eğer cart bulunumaz ise ismCard null dönecektir.
        
        long slotNum = -1;
        CardType ismCard = null;
        try
        {
            CardType[] myCards = CardType.getCardTypes();
            foreach (CardType c in myCards)
            {
                 slotNum = SmartOp.findSlotNumber(c);
                if (slotNum != -1)
                {
                    ismCard = c;
                    break;
                }
            }
        }
        catch { }
 
    
 
        bsc = new P11SmartCard(ismCard);
        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);
    }
}









12 Mayıs 2016 Perşembe 11:12:28 UTC+3 tarihinde Can Burak ALAKUŞ yazdı:

İsmail ÖZER

unread,
May 31, 2016, 4:03:59 PM5/31/16
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Tüm kartlarda işinizi görecektir. Ayrıca tek tek kart tiplerini denemenize gerek yok



31 Mayıs 2016 Salı 23:00:37 UTC+3 tarihinde İsmail ÖZER yazdı:

Can Burak ALAKUŞ

unread,
May 31, 2016, 4:23:19 PM5/31/16
to sagli...@googlegroups.com
Sorunumu buldum ama çözemeyeceğimi farkedince applet yazmaya karar verdim. Kamu sm yazılım ile iletişime geçtim yeni kartlar için smarcard xml i göndermişlerdi. Ama benim sorunum imzalamayı web projesinde yapmamdı. asp.net üzerinden .net örnek kodlarını kendi projeme uyguladığımda sadece server a takılı olan kartları görüyordu program. Clientlara tkaılan kartlara hiç bir şekilde erişimi yoktu. Bu yüzden denediğim tüm kodlar hiç bir kartı bulmuyordu. Yani serverda takılı değildi :). Geçici bir çözüm olsa da applet ile yazmaya karar verdim. İlerleyen zamanlarda da silverlight mantıklı görünüyor

31 Mayıs 2016 23:03 tarihinde İsmail ÖZER <isoz...@gmail.com> yazdı:

--
Bu iletiyi Google Grupları'ndaki "Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin" grubunda bir konuya abone olduğunuz için aldınız.
Bu konunun aboneliğinden çıkmak için https://groups.google.com/d/topic/saglik_net/nyPklOP-CeQ/unsubscribe adresine gidin.
Bu grubun ve tüm konularının aboneliğinden çıkmak için saglik_net+...@googlegroups.com adresine e-posta gönderin.

Firdevs Koseoglu

unread,
Mar 5, 2018, 12:55:16 AM3/5/18
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Arkadaşlar hala gruptaki mesajları gören var mı aranızda. Bu sorunu bende yaşıyorum acaba çözümü nedir?

16 Haziran 2014 Pazartesi 16:26:18 UTC+3 tarihinde Taha Ercan yazdı:
Merhaba,

Sorunsuz çalışan 32bit uygulamayı, büyük dosya imzalarında aldığım out of memory hatalarına karşın 64bit'e çevirmek istedim. ma3api-managedPkcs11.dll ve System.Data.SQLite.dll dosyalarının 64bit versiyonlarını referans olarak vermeme rağmen, SmartOp.findCardTypesAndSlots metodunda "C_Initialize - This object is not connected to a module." hatası alıyorum. 

Bu hatayı daha önce AKIS kart sürücünün yüklü olmadığı makinalarda 32bit uygulama ile de alıyordum. Sürücüyü yükleyince sorun düzeliyordu.
Şimdi kartın 64bit sürücüsü olsa da 64bit uygulama ile "C_Initialize - This object is not connected to a module." hatasını alıyorum.
Sorunu çözebilmiş miydiniz?

Saygılar.

26 Şubat 2013 Salı 11:58:10 UTC+2 tarihinde cagdask yazdı:
ma3api-managedPkcs11.dll ve System.Data.SQLite.dll dosyalarının 64bit versiyonları var. api klasörünün içinden çıkıyor. onlarla bir deneyin isterseniz.

Rasim Hasret

unread,
Apr 10, 2018, 7:23:26 PM4/10/18
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Merhaba,

c#, java veya vb.net de uygulama geliştirip api ile imzalama yapacaksanız ve C_Initialize (Object) hatası alıyorsanız bulduğum kısaca çözümü anlatayım;

Yazdığınız uygulamanın targeti x86 olup, x86 altındaki dosyaları windows 32 bit veya 64 bit kurulu pcde rahatlıkla çalıştırabiliyorsunuz.
targeti x64 veya any yapıp yine windows 64 bit pcde çalıştırmaya kalktığınızda C_Initialize hatası almaktasınız. Bunun sebebini de araştırmalarım sonucu;

eğer uygulama target -> Any olarak yazıldıysa, hangi pcye kurulacaksa o pcdeki akıllı kart okuyucusunun 64 bit veya 32 bit sürücüsünün ;


adresinden kurulması gerekmektedir. Bu şekilde 64 bit olarak sorunsuz bir şekilde çalıştırdım.

Herkes kodlara takılmış 64 bit için fakat sorun kodlarda değil, dll de değil, wrapper da değil. Maalesef 64 bit veya 32 bit sürücü yüklemesiyle alakalı. Bu durumla alakalı ma3api-managedPkcs11, dll içindeki kodları incelediğimde (Geri Mühendislik) kaynağın söylediğim şekilde ilgili platform (x86, x64) sürücü yazılımıyla olduğunu keşfettim. Tabi bunu keşfettim günlerimi aldı. Umarım bahsettiğim çözüm uygulamasını 64 bit geliştiren ve imzalama tarafında C_Initialize (Object) hatası alanlara yardımcı olur.


5 Mart 2018 Pazartesi 08:55:16 UTC+3 tarihinde Firdevs Koseoglu yazdı:

Kerem Can

unread,
Jan 23, 2020, 3:34:18 AM1/23/20
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Merhaba,
Ekteki gibi hata alıyorum var mı bir öneriniz?

Hata : Could not load file or assembly 'ma3api-managedPkcs11, Version=0.0.0.0, Culture=neutral, PublicKeyToken=4d1d81e4a0cd6187' or one of its dependencies. An attempt was made to load a program with an incorrect format.
err.PNG

Mesut ÇAKIR

unread,
Jan 23, 2020, 4:17:12 AM1/23/20
to sagli...@googlegroups.com

Java versiyonunu yenilendikten sonra olmuş olabilir. Java update aldıysanız aşağıdaki kütüphaneleri deneyin lüten.

 

https://yazilim.kamusm.gov.tr/?q=tr/system/files/public/MA3-API-dotnet-2.2.1.4.zip

 

Windows 10 için Posta ile gönderildi

 

Kimden: Kerem Can
Gönderilme: 23 Ocak 2020 Perşembe 11:34
Kime: Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Konu: Re: E-İmza win 7 64 bit driver sorunu yaşayan var mı?

--

Bu iletiyi Google Grupları'ndaki "Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin" grubuna abone olduğunuz için aldınız.

Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için saglik_net+...@googlegroups.com adresine e-posta gönderin.
Bu tartışmayı web'de görüntülemek için https://groups.google.com/d/msgid/saglik_net/1f26bb47-2cb3-4074-96e1-8f0f2c91047f%40googlegroups.com adresini ziyaret edin.

 

Kerem Can

unread,
Jan 23, 2020, 6:25:00 AM1/23/20
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Çok teşekkürler sorun çözüldü.

İzninizle bir sorum daha var. 

XAdES-A upgrade yapmak istedğimde 

object reference not set to an instance of an object hatası almaktayım.
Kod bloğu şu şekilde :

unnamed.png

                XMLSignature signature2 = new XMLSignature(context, false);
                signature2.SignedInfo.SignatureMethod = SignatureMethod.RSA_SHA256;
                xDoc.DocumentElement.AppendChild(signature2.Element);
                
                signature2.addDocument(filePath, xadesFormat, true);
                signature2.addKeyInfo(certInfo.ECertificate);
                signature2.SigningTime = DateTime.Now;

                
                signature2.sign(signer);
                LogManager.Log("sign done.");

                //XAdES-A
                signature2.upgrade(tr.gov.tubitak.uekae.esya.api.signature.SignatureType.ES_A);

23 Ocak 2020 Perşembe 12:17:12 UTC+3 tarihinde Mesut ÇAKIR yazdı:

Java versiyonunu yenilendikten sonra olmuş olabilir. Java update aldıysanız aşağıdaki kütüphaneleri deneyin lüten.

 

https://yazilim.kamusm.gov.tr/?q=tr/system/files/public/MA3-API-dotnet-2.2.1.4.zip

 

Windows 10 için Posta ile gönderildi

 

Kimden: Kerem Can
Gönderilme: 23 Ocak 2020 Perşembe 11:34
Kime: Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Konu: Re: E-İmza win 7 64 bit driver sorunu yaşayan var mı?

 

Merhaba,

Ekteki gibi hata alıyorum var mı bir öneriniz?

 

Hata : Could not load file or assembly 'ma3api-managedPkcs11, Version=0.0.0.0, Culture=neutral, PublicKeyToken=4d1d81e4a0cd6187' or one of its dependencies. An attempt was made to load a program with an incorrect format.

26 Şubat 2013 Salı 11:51:40 UTC+2 tarihinde Gökmen Soylu yazdı:

Arkadaşlar
e imza için kamu sm .net kütüphaneleri ile win7 32 bitte testlerimizi tamamladık. e-recete numarasını aldık buraya kadar her şey güzel ama 64 bit bilgisayarlarda kart okuyucu driveri yüklüyoruz akisi yüklüyoruz, aygıt yöneticisinde bilinmeyen akıllı kart diyor ve kodu çalıştırdığımızda SmartCardManager da SmartOp.getCardTerminals() metodu ile terminalleri listelediğimizde herhangi bir terminal görmüyor. belirteyim Akis okuyucuyu, kartı görüyor ve sertifika detayına kadar gösteriyor. acaba bu sıkıntı ile karşılaşan ve çözen var mı?

--
Bu iletiyi Google Grupları'ndaki "Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin" grubuna abone olduğunuz için aldınız.

Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için sagli...@googlegroups.com adresine e-posta gönderin.

Message has been deleted
Message has been deleted

Mustafa YILDIZ

unread,
Feb 11, 2020, 6:47:02 AM2/11/20
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Merhaba,

https://sourceforge.net/projects/eimza/ baz alınarak,
windows arkaplanda çalışan ve diğer programlarla haberleşen aracı bir program yazdık.
yalnız takılı olan kart listesi almak istediğimizde, program ilk açıldığında bir problem olmuyor 
ancak e-imza'yı çıkartıp aynısını ve ya başka bir e-imza taktığımızda, 
listeyi tekrar çekmek ister isek (programı kapatmadan) 

 String[] terminals = SmartOp.getCardTerminals();

yukarıdaki satır patlamakta ve .dll Exception olarak "Nesne başvurusu bir nesnenin örneğine ayarlanmadı." şeklinde uyarı döndürmektedir.
bunu nasıl düzeltebiliriz.

Yunus Akbudak

unread,
Feb 11, 2020, 8:22:14 AM2/11/20
to sagli...@googlegroups.com
Bu durumda projeyi derlerken kullandığınız dll'lerin 32 bit ve derleme platformunun 32 bitte olmasına dikkat ediniz.Aynısı 64 bitte de geçerli.Any CPU modu bu dll ler için geçerli olmuyor.Ayrı ayrı derleyip sunmak lazım. 

--
Bu iletiyi Google Grupları'ndaki "Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için saglik_net+...@googlegroups.com adresine e-posta gönderin.
Bu tartışmayı web'de görüntülemek için https://groups.google.com/d/msgid/saglik_net/f61c5e04-1c38-4d0d-8d8a-ddb0a5e38ca0%40googlegroups.com adresini ziyaret edin.

Mustafa YILDIZ

unread,
Feb 11, 2020, 8:45:24 AM2/11/20
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
derlemeyi 32 bitte yapmıştım.
programı yeniden başlatınca bir sıkıntı yok. Ancak program çalışır durumdayken ikinci kere listeyi çekmek istediğimizde alıyoruz.


Yunus Akbudak

unread,
Feb 12, 2020, 4:28:58 AM2/12/20
to sagli...@googlegroups.com
Ben de aynı sorunu yaşadım aynı ya da farklı imza takıp çıkarınca exception atıyordu ve anca kapatıp açarak sorun gidiyordu.Dediğim gibi Solutiondan Configuration ve Platform ayarlarında ve Projenin Build Ayarlarında her ayarı 32 bit olarak işaretleyin ... Bir de 64 bitlik iki dll li (ma3api-managedPkcs11.dll ve System.Data.SQLite.dll) hiç almayın projeye bence.Aldığınız ma3api-managedPkcs11.dll'in 32 bit olduğundan emin olun.Ayarlarını yapabiliyorsanız siz bilirsiniz durabilir tabi.

On Tue, Feb 11, 2020 at 4:45 PM Mustafa YILDIZ <mummy...@gmail.com> wrote:
derlemeyi 32 bitte yapmıştım.
programı yeniden başlatınca bir sıkıntı yok. Ancak program çalışır durumdayken ikinci kere listeyi çekmek istediğimizde alıyoruz.


--
Bu iletiyi Google Grupları'ndaki "Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için saglik_net+...@googlegroups.com adresine e-posta gönderin.
Bu tartışmayı web'de görüntülemek için https://groups.google.com/d/msgid/saglik_net/5687625c-2251-4baa-a215-07b2a9a103d2%40googlegroups.com adresini ziyaret edin.

Mustafa YILDIZ

unread,
Feb 13, 2020, 5:15:50 AM2/13/20
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
Alıntı:
derlemeyi 32 bitte yapmıştım.
programı yeniden başlatınca bir sıkıntı yok. Ancak program çalışır durumdayken ikinci kere listeyi çekmek istediğimizde alıyoruz.

merhaba,
problemi çözdük.
İsmail Özer Beyin yöntemiyle;

        String[] terminals = SmartOp.getCardTerminals();
        String terminal;

        SmartOp'da hata vermesi durumunda 

        //ism Code açıklama: verilen tüm kart tipleri taranarak uygun kart bulunur
        //Eğer cart bulunumaz ise ismCard null dönecektir.        
        long slotNum = -1;
        CardType ismCard = null;
        try
        {
            CardType[] myCards = CardType.getCardTypes();
            foreach (CardType c in myCards)
            {
                 slotNum = SmartOp.findSlotNumber(c);
                if (slotNum != -1)
                {
                    ismCard = c;
                    break;
                }
            }
        }
        catch { }
 
bu yöntem ile, slottaki tüm kart tiplerini deneyerek ilgili kart okuması yaparak düzelttim.
teşkkürler, iyi çalışmalar.


MİRAÇ

unread,
Jun 29, 2021, 3:26:18 AM6/29/21
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin

Bende aynı sorunla karşılaştım. kartı çıkarıp tekrar takınca hata alıyor.
 String[] terminal = SmartOp.getCardTerminals();  

bahsettiğiniz kod bloğunu denediğimde de ilk döngüde catch'e düşüyor.  nasıl bir yol izlediniz yardımcı olma şansınız var mı?
Teşekkürler

13 Şubat 2020 Perşembe tarihinde saat 13:15:50 UTC+3 itibarıyla mummy...@gmail.com şunları yazdı:

MİRAÇ

unread,
Jul 27, 2021, 8:25:49 AM7/27/21
to Sağlık Net İletişim Portalı Yazılım Geliştiriciler İçin
bu sorunu çözen var mı ?


11 Şubat 2020 Salı tarihinde saat 14:47:02 UTC+3 itibarıyla mummy...@gmail.com şunları yazdı:
Reply all
Reply to author
Forward
0 new messages