Sziasztok,
es3 (Microsec-es) kiterjesztésű fájlokat szeretnék automatikusan kibontani Centos alatt.
Van esetleg erre egy kipróbált megoldás?
Köszönöm
- 6278 megtekintés
Hozzászólások
Szerintem írj rá Python script-et.
- A hozzászóláshoz be kell jelentkezni
azt pedig lehetne inotify-ból futtatni.
- A hozzászóláshoz be kell jelentkezni
Amelyet egy shell script indít, amiben AWK-val keresel az es3-ban, az eredményt Perl-lel csócsálod a Pythonnak való átadás előtt, amely Python visszaadott eredményét egy PHP-script hozza megfelelő formára.
Esetleg kis JS még befigyelhetne.
- A hozzászóláshoz be kell jelentkezni
Fortran-t kihagytad!
- A hozzászóláshoz be kell jelentkezni
Mit jelent a "kibontas" egy tomoritetlen XML eseten? A benne levo, base64 encode-olt dolgokat szeretned kulon-kulon file-ba tenni, es valamivel feldolgozni?
A mar emlitett python nem eleg? (van xml-hez, file-hoz, meg base64-hez is modul)
A strange game. The only winning move is not to play. How about a nice game of chess?
- A hozzászóláshoz be kell jelentkezni
Pontosan amit leírtál. Elvileg több fájl is lehet az es3-ban és azokat szeretnénk kicsomagolva látni és használni. Mindezt a háttérben, nem az e-signos programmal.
Így néz ki az eleje:
<es:Format>
<es:MIME-Type type="application" subtype="pdf" extension="pdf"/>
</es:Format>
<es:SourceSize sizeValue="8243" sizeUnit="B"/>
<es:BaseTransform>
<es:Transform Algorithm="zip"/>
<es:Transform Algorithm="base64"/>
- A hozzászóláshoz be kell jelentkezni
from lxml import etree
import base64
x=etree.parse('/media/12T/nyos/3trol/ment/es3ak/vegzes.es3')
nss={'es':'https://www.microsec.hu/ds/e-szigno30#','ds':'http://www.w3.org/2000/09/xmldsig#'}
#docs=x.xpath('//es:Documents/es:Document[es:DocumentProfile]',namespaces=nss)
b64=base64.decodestring(x.xpath('//ds:Object',namespaces=nss)[3].text.encode('utf-8'))
with open('/tmp/test.zip','wb') as f:
f.write(b64)
Kerestem egy es3-at a gepemen, inditottam egy python3 interpretert (interaktiv modban), aztan elkezdtem vele jatszani.
Eloszor tisztessegesen elkezdtem bejarni a DOM-ot, ugyanis van egy es:Documents tag, azon belul vannak a es:Document tag-ek, es annak vannak mindenfele node-jai (es:Title, meg amiket irtal, es:Format, stb..), es ami a lenyeg: a ds:Object, amiben maga a base64 enkodolt adat van.
Aztan nem akartam bonyolitani, es inkabb kivalasztottam az egyik objectet, base64 decode-oltam, es kiirtam file-ba a tartalmat. Ez egy zip, amit kibontva kaptam egy nagyon ronda nevu (A l├йtes├нt┼С okirat - v├бltoz├бsokkal egybefoglalt - hat├бlyos├нtott sz├╢vege.pdf) PDF-et. Utobbi a zipfile modullal is kibonthato, de ezzel mar nem akarok tokolni.
Az xpath fuggveny a fenti kodban amugy egy listat ad meg, amin forral vegig lehet menni ugye.. szoval nem egy varazslat mindent kinyerni a file-bol. es:MIME-Type alapjan el lehetne agazni, es es:Transform alapjan meg lehet hivni a zipes kibontast is. Alapvetoen kb. ennyi xml-t kezelni (ezt persze kb. minden modern nyelv tudja, szoval ha a C#/PHP/akarmi jobban tetszik, akkor hajra azzal).
A strange game. The only winning move is not to play. How about a nice game of chess?
- A hozzászóláshoz be kell jelentkezni
Mit jelent az "automatikusan"? Fájl létrehozás vagy felülírás esetén fusson le a kibontás? A megoldás egy eleme lehet az entr parancs, mely fájl változás esetén elindít egy megadható programot, scriptet:
- A hozzászóláshoz be kell jelentkezni
Ezzel könnyen ki lehet bontani: https://e-szigno.hu/uzleti-megoldasok/e-szigno-automata.html
Szerk.: Bocs, most olvasom egy másik hozzászólásod, hogy nem az e-szignós programmal. Erre gondoltál, mint eszignós program, vagy a grafikusra?
- A hozzászóláshoz be kell jelentkezni
Igen, erre.
- A hozzászóláshoz be kell jelentkezni
Nem tudom ez-e az aktuális fájlformátum, a weboldal szerint igen:
https://e-szigno.hu/tudasbazis/e-akta-formatum-specifikacioja.html
http://static.e-szigno.hu/e-akta/e-akta_specifikacio_v1.5.pdf
Nem tűnik vészesnek, és nem is hosszú a doksi.
- A hozzászóláshoz be kell jelentkezni
#!/usr/bin/env python
import xml.etree.ElementTree as ET
import base64
import sys
import os
if ((len(sys.argv) == 1) or (len(sys.argv) > 2)):
print("Provide one es3 file as input please")
exit(1)
inputfilename=sys.argv[1]
tree = ET.parse(inputfilename)
root = tree.getroot()
ns={'es':'https://www.microsec.hu/ds/e-szigno30#','ds':'http://www.w3.org/2000/09/xmldsig#'}
for documents in root.findall('es:Documents', ns):
for document in documents.findall('es:Document',ns):
filename = document.find('es:DocumentProfile', ns).find('es:Title', ns).text
b64=base64.decodebytes(document.find('ds:Object',ns).text.encode('utf-8'))
if not os.path.exists(filename):
with open(filename, 'wb') as f:
print(filename)
f.write(b64)
else:
print(filename+' already exists.')
- A hozzászóláshoz be kell jelentkezni
Köszönjük, működik. Nálam fenn van a python 2 és 3 is, és alapból 2-vel indult, de csak 3-mal működik. Annyit kellett átírni, hogy python3 legyen a fejlécben.
- A hozzászóláshoz be kell jelentkezni
Igen, nekem is működik, ha python3-at irok felülre. E-TULAJDONI LAP-ot bontottam ki.
Ez a program létrehozott egy 'tulajdoni lap' fájlt. Én átneveztem tullap.zip-re.
Aztán
unzip tullap.zip
kicsomagolta a TULLAP*.pdf fájlt. A filenév ugyanaz, mint a .es3 előtt.
- A hozzászóláshoz be kell jelentkezni
Ja, hagyatéki végzésnél pdf kiterjesztésű file van az es3-ban, ami valójában zip, és átnevezés, unzip után kapja meg az ember a pdf-et. Felhasználóbarát, na. Minden forintját megéri, amit a közjegyzőnek fizet az ember. egyébként hétköznapi emberek hogy nyitják meg ezeket? Vagy van valami triviális megoldás, csak én nem találtam?
- A hozzászóláshoz be kell jelentkezni
Azt én is megnézném, h. ha az átlagemberek nagytöbbségénél már desktop windows PC sincs, csak smartphone meg tablet, ez a fájlkezelős baszkódás (átnevez .XYZ-ről .ZIP-re, majd kicsomagol, majd abból kiszedi a .PDF-et stb.) hogy kivitelezhető a mindennapi életben.
- A hozzászóláshoz be kell jelentkezni
E-szignóból van mobil verzió is. Bár én még sose használtam, van asztali gépem.
- A hozzászóláshoz be kell jelentkezni
Van egy e-szigno nevu alkalmazas. Hetkoznapi ember felteszi, es megnyitja azzal. Meg a digitalis alairast is leellenorzi neki, ami pont az egesz lenyege.
A strange game. The only winning move is not to play. How about a nice game of chess?
- A hozzászóláshoz be kell jelentkezni
Igen, épp írni akartam, hogy mi értelme van a tartalmat kinyerni az aláírás ellenőrzése nélkül? Ez kb. ugyanaz, mintha egy tanúsítvánnyal aláírt pdf-ből simán Word doc formátumra konvertálnék.
- A hozzászóláshoz be kell jelentkezni
Azzal magyarázzák ennek az es3 formátumnak a létét, hogy az asic formátumok (https://en.wikipedia.org/wiki/Associated_Signature_Containers) akkor még nem léteztek, amikor már szükség volt valamire. De szerintem az eszignó kliens megnyitja, és elvégzi ezeket a kicsomagolásokat.
- A hozzászóláshoz be kell jelentkezni