E-Reçeteye E-İmza geliştirmesi ile ilgili denetim aşamasına geldik.
Bu aşamaya gelena kadar Kamu Sertifika Merkezi sağolsun desteğini esirgemedi.
İlgilenenler için faydalı olur düşüncesi ve bilgilendirme amacı ile arada geçen yazışmaları aşağıda paylaşıyorum.
Saygılarımla,
From : HBYS
E-Reçete'yi E-imza ile imzalayabilmek için bir test imzasın nasıl
elde edebiliriz?
To: HBYS
Sayın İlgili,
Talebiniz xxxx numarası ile alınmıştır.
Test sertifikası için ücret 10+KDV(%18) TL
Mini (USB) kart okuyucu fiyatımız 15+KDV (%18) TL
Ücreti aşağıdaki hesap numarasına yatırdıktan sonra ekteki formu doldurmanızı ve ücret dekontu ile birlikte göndermenizi talep ederiz.
Talebiniz xxxx numarası ile alınmıştır.
Test sertifikası için ücret 10+KDV(%18) TL
Mini (USB) kart okuyucu fiyatımız 15+KDV (%18) TL
Ücreti aşağıdaki hesap numarasına yatırdıktan sonra ekteki formu doldurmanızı ve ücret dekontu ile birlikte göndermenizi talep ederiz.
(http://www.kamusm.gov.tr/ adresinden başvuru kısmından faydalanarak forma ulaşabilirsiniz)
Hesap Numarası
|
Ziraat Bankası Gebze Şubesi/ Şube Kodu: 164
IBAN TR310001000164347551965006 |
Fax:262 648 18 00
From : HBYS
http://yazilim.kamusm.gov.tr adresindeki aşağıdaki paketi kullanarak
entegrasyonu tamamladık. Sonraki adım ne olacak?
From : bilgi@kamusm.gov.tr
To : HBYS
Merhaba,
Kamu Sertifikasyon Merkezi'ne (Kamu SM) Nitelikli Elektronik Sertifika (NES) talebinde bulunan kamu kurumlarının elektronik imza ve/veya mobil imza uygulamalarını hazırlayan yazılım firmalarının, e-imza mevzuatında geçen uluslararası teknik standartlara uygunluğunun Kamu SM tarafından değerlendirmeye alınması zorunludur.
e-imza uyum değerlendirme hizmeti ile ilgili aradığınız her türlü bilgiyi aşağıdaki sayfalarımızda bulabilirsiniz.
http://www.kamusm.gov.tr/hizmetler/e-imza_uyum_denetimi/
http://www.kamusm.gov.tr/hizmetler/e-imza_uyum_denetimi/fiyatlandirma.jsp
http://www.kamusm.gov.tr/hizmetler/danismanlik_ve_egitim/
http://www.kamusm.gov.tr/urunler/yazilim/
http://yazilim.kamusm.gov.tr
İmza atmadan önce yapılması gerekenler,
1. Sertifika doğrulama yapılması gerekmektedir.
2. İmza atıldıktan sonra oluşan XSIG uzantılı dosyayı kaydederek bundle'dan inen kodda bulunan validate signature metoduna bu dosyanın yolunu vererek imza sonucunu kontrol edebilirsiniz.
3. Biz testlerimizde Sağlık Bakanlığı kapsamında imza atma testleri yapacağız. Bu sebeple test yaparken imzaları kaydedip doğrulamanıza gerek kalmayacaktır.
Sağlık Bakanlığı e-reçete uygulamasında kullanılacak yazılımların değerlendirme süreçleri de şu şekilde revize edilmiştir:
E-imza uygulamalarının değerlendirmesinde uygulamanın e-imza oluşturulan bölümlerinde aşağıdaki maddeler incelenmektedir:
1. Uygulamada oluşturulan elektronik imza formatlarının ETSI dokümanlarında belirtilen formatlara uygunluğu
2. E-imza oluşturma uygulamasında aşağıdaki testler yapılmaktadır:
Kamu Sertifikasyon Merkezi'ne (Kamu SM) Nitelikli Elektronik Sertifika (NES) talebinde bulunan kamu kurumlarının elektronik imza ve/veya mobil imza uygulamalarını hazırlayan yazılım firmalarının, e-imza mevzuatında geçen uluslararası teknik standartlara uygunluğunun Kamu SM tarafından değerlendirmeye alınması zorunludur.
e-imza uyum değerlendirme hizmeti ile ilgili aradığınız her türlü bilgiyi aşağıdaki sayfalarımızda bulabilirsiniz.
http://www.kamusm.gov.tr/hizmetler/e-imza_uyum_denetimi/
http://www.kamusm.gov.tr/hizmetler/e-imza_uyum_denetimi/fiyatlandirma.jsp
http://www.kamusm.gov.tr/hizmetler/danismanlik_ve_egitim/
http://www.kamusm.gov.tr/urunler/yazilim/
http://yazilim.kamusm.gov.tr
İmza atmadan önce yapılması gerekenler,
1. Sertifika doğrulama yapılması gerekmektedir.
2. İmza atıldıktan sonra oluşan XSIG uzantılı dosyayı kaydederek bundle'dan inen kodda bulunan validate signature metoduna bu dosyanın yolunu vererek imza sonucunu kontrol edebilirsiniz.
3. Biz testlerimizde Sağlık Bakanlığı kapsamında imza atma testleri yapacağız. Bu sebeple test yaparken imzaları kaydedip doğrulamanıza gerek kalmayacaktır.
Sağlık Bakanlığı e-reçete uygulamasında kullanılacak yazılımların değerlendirme süreçleri de şu şekilde revize edilmiştir:
E-imza uygulamalarının değerlendirmesinde uygulamanın e-imza oluşturulan bölümlerinde aşağıdaki maddeler incelenmektedir:
1. Uygulamada oluşturulan elektronik imza formatlarının ETSI dokümanlarında belirtilen formatlara uygunluğu
2. E-imza oluşturma uygulamasında aşağıdaki testler yapılmaktadır:
- İmzalanan Kullanıcı Belgesi ile İlgili Testlerü
- İmzaya Dahil İmza Özellikleri ile İlgili Testler
- Doğrulanabilir İmzanın Oluşturulması ile İlgili Testler
- Güvenli Elektronik İmza Oluşturma Aracı İletişimi ile İlgili Testler
- Kullanıcı Arayüzü ile İlgili Testler
- Güvenli Elektronik İmza Oluşturma Yazılımı Dış Bağlantıları ile İlgili Testler
- Kullanılan Algoritmaların Geçerliliği ile İlgili Testler
Yani, imza
doğrulama süreçleri değerlendirme dışı olacak, oluşturma süreçleri
değerlendirilecektir. Kullanılacak imza türü ise BES'tir.
Bu doğrultuda, uyum değerlendirme hizmeti fiyatı 1200TL+KDV(%18) olarak belirlenmiştir. Ayrıca şehir dışı firmalar için yol masrafları gibi bazı masraflar da ekstra talep edilmektedir.
e-İmza uyum değerlendirmesinden geçmek isteyen kurumların, bu isteklerini bildiren ıslak imzalı ve kaşeli bir üst yazıyla birlikte aşağıdaki bilgileri 0262 648 18 00 numarasına fax çekmeleri ve (Kamu Sertifikasyon Merkezi TÜBİTAK Yerleşkesi P.K. 74, Gebze 41470 Kocaeli) adresimize posta yoluyla göndermeleri yeterlidir.
Kurum Adı:
Adres:
Vergi Numarası:
Vergi Dairesi:
Tel No:
Fax No:
Yetkili Bilgileri;
Ad:
Soyad:
TC Kimlik:
Cep No:
Eposta:
Bilgilerinize,
From : HBYS
Bu doğrultuda, uyum değerlendirme hizmeti fiyatı 1200TL+KDV(%18) olarak belirlenmiştir. Ayrıca şehir dışı firmalar için yol masrafları gibi bazı masraflar da ekstra talep edilmektedir.
e-İmza uyum değerlendirmesinden geçmek isteyen kurumların, bu isteklerini bildiren ıslak imzalı ve kaşeli bir üst yazıyla birlikte aşağıdaki bilgileri 0262 648 18 00 numarasına fax çekmeleri ve (Kamu Sertifikasyon Merkezi TÜBİTAK Yerleşkesi P.K. 74, Gebze 41470 Kocaeli) adresimize posta yoluyla göndermeleri yeterlidir.
Kurum Adı:
Adres:
Vergi Numarası:
Vergi Dairesi:
Tel No:
Fax No:
Yetkili Bilgileri;
Ad:
Soyad:
TC Kimlik:
Cep No:
Eposta:
Bilgilerinize,
From : HBYS
ESYA-XADES-API-1.4.8-NET api ile imzalama yaparken reçeteyi
XMLDocument’e çevirip diske kaydettikten sonra;
XMLSignature signature = new XMLSignature();
signature.addDocument(recetePath , null , true); ///recetePath:reçetenin xmldocument’e çevrildikten sonra diskte kaydedildiği yol.
signature.addKeyInfo(signingCert);
signature.sign(signer);
addDocument metoduyla reçeteyi yüklüyoruz. Bu konuda sıkıntımız yok.
XMLDocument halini direk XMLSignature’a yükleme şansımız yok mu?
Diske boşuna okuma yazma yapmak istemiyoruz.
signature.addDocument(recetePath , null , true); ///recetePath:reçetenin xmldocument’e çevrildikten sonra diskte kaydedildiği yol.
signature.addKeyInfo(signingCert);
signature.sign(signer);
addDocument metoduyla reçeteyi yüklüyoruz. Bu konuda sıkıntımız yok.
From : yazilim@kamusm.gov.tr
To : HBYS
Merhaba,
Son yayınlanan Xml imza .net 1.4.8 sürümünde bahsettiğiniz işlemin yapılması mümkündür. Aşağıdaki kodlara benzer şekilde imzalanmak istenen veri byte[] olarak verilip imza değeri de yine byte[] olarak alınabilir..
Xades .Net 1.4.8 sürüm linki
https://yazilim.kamusm.gov.tr/?q=tr/system/files/private/ESYA-XADES-API-1.4.8-NET.zip
Son yayınlanan Xml imza .net 1.4.8 sürümünde bahsettiğiniz işlemin yapılması mümkündür. Aşağıdaki kodlara benzer şekilde imzalanmak istenen veri byte[] olarak verilip imza değeri de yine byte[] olarak alınabilir..
Xades .Net 1.4.8 sürüm linki
https://yazilim.kamusm.gov.tr/?q=tr/system/files/private/ESYA-XADES-API-1.4.8-NET.zip
FileStream
fs = new FileStream(eReceteSourceFilePath, FileMode.Open, FileAccess.Read);
byte[] fileData = StreamUtil.ReadToEnd(fs);
fs.Close();
şeklinde alınan ya da başka şekilde edinilen dosya içeriği aşağıdaki örnekte gözüktüğü şekilde kullanılıp imzalanacak veri ve imza dosyaya yazılmadan alınabilir.
İyi çalışmalar,
public string eReceteImzalaByte(byte[] fileData)
{
LisansHelper.loadFreeLicense();
try
{
string currentDirectory = Directory.GetCurrentDirectory();
Context context = new Context(currentDirectory);
XMLSignature signature = new XMLSignature(context);
signature.SigningTime = DateTime.Now;
InMemoryDocument inMMDoc = new InMemoryDocument(fileData,"",null,null);
byte[] fileData = StreamUtil.ReadToEnd(fs);
fs.Close();
şeklinde alınan ya da başka şekilde edinilen dosya içeriği aşağıdaki örnekte gözüktüğü şekilde kullanılıp imzalanacak veri ve imza dosyaya yazılmadan alınabilir.
İyi çalışmalar,
public string eReceteImzalaByte(byte[] fileData)
{
LisansHelper.loadFreeLicense();
try
{
string currentDirectory = Directory.GetCurrentDirectory();
Context context = new Context(currentDirectory);
XMLSignature signature = new XMLSignature(context);
signature.SigningTime = DateTime.Now;
InMemoryDocument inMMDoc = new InMemoryDocument(fileData,"",null,null);
signature.addDocument(inMMDoc);
SmartCardManager
smartCardManager = SmartCardManager.getInstance();
ECertificate
signingCert = smartCardManager.getSignatureCertificate(true, false);
//İlk parameter Kart Pin
BaseSigner baseSigner = smartCardManager.getSigner("511661", signingCert);
bool validCertificate = isValidCertificate(signingCert);
if (!validCertificate)
{
MessageBox.Show("İmza atılmak istenen sertifika geçerli değil.");
return null;
}
// add certificate to show who signed the document
signature.addKeyInfo(signingCert);
//BaseSigner smartCardSigner = keyOrSmartCardSignManager.getSigner(signingCert);
signature.sign(baseSigner);
//İlk parameter Kart Pin
BaseSigner baseSigner = smartCardManager.getSigner("511661", signingCert);
bool validCertificate = isValidCertificate(signingCert);
if (!validCertificate)
{
MessageBox.Show("İmza atılmak istenen sertifika geçerli değil.");
return null;
}
// add certificate to show who signed the document
signature.addKeyInfo(signingCert);
//BaseSigner smartCardSigner = keyOrSmartCardSignManager.getSigner(signingCert);
signature.sign(baseSigner);
MemoryStream
ms = new MemoryStream();
signature.write(ms);
byte[] signatureData = StreamUtil.ReadToEnd(ms);
string base64SignatureValue = Convert.ToBase64String(signatureData);
return base64SignatureValue;
signature.write(ms);
byte[] signatureData = StreamUtil.ReadToEnd(ms);
string base64SignatureValue = Convert.ToBase64String(signatureData);
return base64SignatureValue;
}
catch (XMLSignatureException exc)
{
// cant create signature
MessageBox.Show("Hata Oluştu." + exc.Message);
}
catch (Exception exc)
{
// probably couldn't write to the file
MessageBox.Show("Hata Oluştu." + exc.Message);
}
return null;
}
catch (XMLSignatureException exc)
{
// cant create signature
MessageBox.Show("Hata Oluştu." + exc.Message);
}
catch (Exception exc)
{
// probably couldn't write to the file
MessageBox.Show("Hata Oluştu." + exc.Message);
}
return null;
}
Hiç yorum yok:
Yorum Gönder