Merhaba,
--
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.
Merhaba,
<class name="tr.gov.tubitak.uekae.esya.api.certificate.validation.find.certificate.trusted.TrustedCertificateFinderFromFileSystem">
<param name="dizin" value="trusted"/>
</class>
<
class
name
=
"tr.gov.tubitak.uekae.esya.api.certificate.validation.find.certificate.trusted.TrustedCertificateFinderFromECertStore"
>
İmzalan orijinal XML dosyası imzalı dosyanın içinde 64’lük tabanda (base 64) kodlanarak yer alacaktır
--
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.
zaman damgası eklememiz gerekiyor mu? recete klavuzunda yazmıyor.
--
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.
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 isterseniz cardtype string olarak alabiliyorsunuz. Gerçi normalde gerek yok:
sc.getCardType().ToString();
Sonraki aşamada
bsc = new P11SmartCard(sc.getCardType());
long[] PresentSlots;
PresentSlots = sc.getTokenPresentSlotList(); // tokenli slot listesini al
// secim kutusu haline getirerek slotid al
long SlotID = 0;
if (PresentSlots.Length == 1)
SlotID = PresentSlots[0];
else
{
SlotID = Convert.ToInt64(askOptionValue(null, null, PresentSlots, "Slot Listesi", new String[] { "Tamam" }));
}
bsc.openSession(sc.getTokenPresentSlotList())
Bu şekilde bir yol takip edilebilir.
Kullanılabilecek kart tipleri:
CardType.AEPKEYPER;
CardType.AKIS;
CardType.AKIS_KK;
CardType.ALADDIN;
CardType.CARDOS;
CardType.DATAKEY;
CardType.GEMPLUS;
CardType.KEYCORP;
CardType.NCIPHER;
CardType.SAFESIGN;
CardType.SEFIROT;
CardType.TKART;
CardType.UNKNOWN;
CardType.UTIMACO;
CardType.UNKNOWN;
İbrahim KAZANCI
4 Aralık 2015 Cuma 14:09:31 UTC+2 tarihinde atilla acar yazdı:EImzaOS
exe'nin program.cs kısmında parametrelerin sayısı ve sırası bellidir. Ona göre parametre gönderilecek...
XML := frmMain.GetDosOutput(frmMain.LocalPath+'EImzaOS.exe '+'"'+XML+'"'+' "'+frmMain.LocalPath+'\"', frmMain.LocalPath);
Merhaba,
Arkadaşlar biliyorsunuz e-imza konusunda Sağlık Bakanlığı'ndan yazılar geliyor ve henüz çoğu firmanın e-imza konusunda çözümü yok.
Tübitak KamuSM'de API'ler ücretsiz sunuluyor ancak e-imza konusu oldukça farklı bir alan olduğu için yazılım geliştirme konusunda zorluk yaşanıyor. Üstelik HBYS yazılımcıları da Java ve C# dillerini bilenlerden ibaret değil. Hatta bazı firmalarda bu dilleri bilenler yok. KamuSM C# dilinde bir DLL hazırlayarak başka dillerde (Delphi) kullanılabileceğine dair örnek yayınladı. Ancak yine de e-imza kodunu, hiç bilmediğiniz bir dilde günlerce belki haftalarca uğraşarak geliştirmeniz gerekecek.
Üstüne üstlük yüzlerce HBYS firmasının haftalarca uğraşarak üreteceği kod birbirinin aynı olacak, nihayetinde hepsi de tamamen aynı işi yapacak, özetle aldığı XML'i dönüştürüp geri verecek.
Bu küçük ama uğraştırıcı kodun ortak bir çalışma ile üretilmesi gerektiğini düşünüyorum. Bu kod üretildiğinde sanırım DLL, EXE veya benzeri şekilde derleyerek her dil içerisinden kullanmak mümkün olacaktır.
Bir kamu kuruluşunun aynı kodu yüzlerce firmaya tekrar tekrar yazdırarak kamuya hizmet etmiş olmayacağından hareketle en başta olması gereken KamuSM tarafından basit imza atacak bir kodun onay alacak haliyle yayınlanmasıdır.
Eğer Sağlık Bakanlığı yetkilileri KamuSM'yi yönlendirmek suretiyle bu konuda bize destek olmayacaksa bu kodun gerekirse ortak bir çalışma ile açık kod olarak geliştirilmesi mantıklı olacaktır diye düşünüyorum.
Sizin fikriniz nedir?
İbrahim KAZANCI
Healthy HBYS
İbrahim bey,
Serfitika zinciri problemini Tübitak çözüyor. Hiç uğraşmayın, Tübitak'ı arayın.
--
--
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/2hK3PNBzZcc/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.
ibrahim hocam e-reçete e-imza çalışmanız için elinize emeğinize sağlık
--
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.
CMD /C ""c:\bosluklu yol\esigner.exe" "<ereceteBilgisi>...</ereceteBilgisi>" """
XML := frmMain.GetDosOutput('""'+frmMain.LocalPath+'ESigner.exe" '+'"'+XML+'" "" "', frmMain.LocalPath, '');
if XML = '' then
begin
frmRMemo.Memo1.Lines.Add('İmzalanmış reçete oluşmadı. Gönderim yapılmadı');
Exit;
end;
// esignerbase64: :esignerbase64 ayiklanmasi
if pos(WideString('esignerbase64:'),XML) > 0 then
begin
XML := Copy(XML, pos(WideString('esignerbase64:'),XML)+14, pos(WideString(':esignerbase64'),XML)-(pos(WideString('esignerbase64:'),XML)+14));
end
else
begin
frmRMemo.Memo1.Lines.Add('Reçete imzalama esnasında hata oluştu'+ XML);
Exit;
end;
vImzaliEreceteGirisIstekDVO := ImzaliEreceteGirisIstekDVO.Create;
vImzaliEreceteGirisIstekDVO.imzaliErecete := XML;
....
....
CMD /C ""c:\bosluklu yol\esigner.exe" "<ereceteBilgisi>...</ereceteBilgisi>" """
'esignerbase64:' ve
':esignerbase64'
ifadeleri arasında kalan veri imzalı XML verisi. Bunu Medula'ya göndereceksiniz.GetDosOutput
içeriğini şöyle değiştirdim. Eski halinde bazen sorun oluyordu. ESigner'in yeni hali buna uyumlu zaten... Program.cs'de -gelen XML'de varsa- "^" karakterini kaldırıyordum.
function TfrmMain.GetDosOutput(
CommandLine: string; Work: string =
'C:\'): string;
var
SA: TSecurityAttributes;
SI: TStartupInfo;
PI: TProcessInformation;
StdOutPipeRead, StdOutPipeWrite: THandle;
WasOK: Boolean;
Buffer: array[0..255] of AnsiChar;
BytesRead: Cardinal;
WorkDir: string;
Handle: Boolean;
begin
Result := '';
CommandLine := stringReplace(stringReplace(CommandLine, '<', '^<', [rfReplaceAll]),'>', '^>', [rfReplaceAll]);
t redirect stdin
hStdOutput := StdOutPipeWrite;
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/2hK3PNBzZcc/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.
</bl
--<div dir=
Arkadaşlar Merhaba
--
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.
...
...