Juhised jDigiDoc teegi kasutajatele üleminekuks BDOC formaadile

JDigiDoc teegis juba alates versioonist 3.8 on olemas lisaks DDOC formaadile ka BDOC-TM (BDOC ajamärgendiga) allkirja formaadi tugi, seega BDOC formaadile üleminekuks teeki vahetama ei pea. Puudub aga tugi BDOC-TS ehk ASiC- E (BDOC ajatempliga) allkirja formaadi jaoks.

BDOC-TS formaadi kasutamiseks tuleks võtta kasutusele uus DigiDoc4J teek, kasutada DigiDocService veebiteenust või Libdigidocpp C++ teeki.

NB! JDigiDoc teegi kasutajad peavad arvestama teegi uute arenduste lõppemisega 2015. aasta keskpaigas ja toeperioodi lõppemisega aasta hiljem, mistõttu võiks BDOC ülemineku planeerimisel kaaluda uue ja pikaajalisema elueaga lahenduse kasutuselevõtmist. DigiDoc teekide eluea kohta leiab täpsema info siit

JDigiDoc teegis BDOC-TM dokumentide toe lisamiseks vajalikud muudatused on kirjeldatud kasutuslugude kaupa. BDOC allkirja ülesehituse ja omaduste kohta leiab rohkem infot JDigiDoc teegi dokumentatsioonist. BDOC formaadile ülemineku ajakava leiab siit.
 

1. Uue BDOC konteineri moodustamine

Uue konteineri loomiseks tuleb vastavalt formaadile muuta sisendparameetreid SignedDoc objekti loomisel, näiteks

SignedDoc sdoc = new SignedDoc("BDOC", "2.1");
 
Parameetritena võib kasutada ka eeldefineeritud konstante SignedDoc.FORMAT_BDOC ja SignedDoc.BDOC_VERSION_2_1.
 

2. Olemasoleva BDOC konteineri sisselugemine 

Konteineri sisselugemisel on võimalik kasutada meetodit SAXDigiDocFactory.readSignedDoc(String fileName), mis tuvastab seesmiselt ka konteineri formaadi.

Alternatiivina võib kasutada erinevaid SAXDigiDocFactory.readSignedDoc*() meetodeid, mille puhul tuleb konteineri formaat eelnevalt ise tuvastada ja see siis vastavas sisendparameetris määrata. Formaadi tuvastamiseks võib kasutada faililaiendi võrdlemist (SAXDigiDocFactory.isBdocExtension(String fname) meetodi abil) või konteineri sisu järgi formaadi tuvastamist (näiteks analoogiliselt SAXDigiDocFactory.isBdocFile(InputStream is) meetodiga).

3. Andmefailide lisamine BDOC konteinerile

Andmefailid tuleb lisada konteinerile binaarkujul (erinevalt DDOC-i puhul kasutatud base64 vormingust). Selleks tuleb SignedDoc.addDataFile(File inputFile, String mime, String contentType) meetodis määrata contentType sisendparameetri väärtuseks alati "BINARY" (defineeritud ka konstandiga DataFile.CONTENT_BINARY). Näiteks 

sdoc.addDataFile(new File("test.txt"), "text/plain", DataFile.CONTENT_BINARY);

või

new DataFile("test.txt", DataFile.CONTENT_BINARY, "test.txt", "text/plain", sdoc);  
 

Otse mälus olevaid andmeid on võimalik lisada DataFile.setBody(byte[] data) meetodiga. 

NB! Kuna BDOC dokumentides puudub andmefaili ID identifikaatori väärtus, siis erinevalt DDOC dokumentidest kasutatakse teegisisesel DataFile.m_id muutuja väärtusena andmefaili nime.

4. BDOC konteineri allkirjastamine

Uue allkirja moodustamise protsessi ja OCSP kinnituse API meetodid on nii DDOC kui BDOC formaatide puhul ühesugused, võimalike erisustega arvestab teek ise seesmiselt. 

Olemasoleva XML kujul allkirja (signatures*.xml faili) lisamiseks konteinerile on võimalik kasutada SignedDoc.readSignature() meetodit, näiteks: 

FileInputStream str = new FileInputStream(new File("signatures1.xml"));
sdoc.readSignature(str);
 
 
Konteineri valideerimisel ja väljundisse kirjutamisel ei ole DDOC ja BDOC formaatide puhul JDigiDoc API kasutamises erisusi.
 
 

 


KÜSI ABI

Kui sa ei leidnud oma küsimusele vastust, kirjuta meie meeskonnale.



  • Vaata juhendit
  • Hinda oma arvutikasutusoskust, et saaksime anda paremaid juhiseid

         

  • Kontroll ebaõnnestus

Kuidas saame artiklit parandada, et sellest rohkem abi oleks?
Saada Sulge