DigiDoc teegid - c-teek - cdigidoc (ver 3.10.1.1208)

DigiDoc C-teek võimaldab koostada, allkirjastada ja verifitseerida DigiDoc faile.

Windowsi platvormil on võimalik allkirjastamiseks kasutada CryptoAPI-t ja PKCS#11 moodulit, teistel platvormidel ainult PKCS#11 moodulit. Lisaks digiallkirjastamisele pakub DigiDoc C-teek ka krüpteerimist ja dekrüpteerimist vastavalt XML-ENC standardile. 

C-teegi dokumentatsioon (.PDF) (uuendatud 02.2015)

Toeperioodi algusUute arenduste lõppToeperioodi lõppLaiendatud toeperiood 
200212.2014 (v3.10)12.2015kokkuleppelLisainfo

 

Konfiguratsioonifailis on viited testsertifikaatidele aga testsertifikaadid tuleb paigaldada eraldi, selleks vajalik .msi paigalduspakk on kättesaadav siit.

Oluline on, et teegi kasutamisel LIVE-rakendustes oleks testsertifikaadid eemaldatud, kuna teek ei anna test-allkirjadega varustatud failide puhul hoiatust, et tegemist on test-allkirjadega.  

Pakk sisaldab binaari, lähtekoodi, käsureautiliiti, Sertifitseerimiskeskuse sertifikaate (www.sk.ee/certs), dokumenatatsiooni.

Versioon Avaldatud Muudatused Laadi alla
3.10.1.1208 09.09.2015 Muudatuste nimekiri (ingl. k.)  Laadi alla
3.10.0.1197 09.02.2015

Muudatuste nimekiri (ingl. k.)

Laadi alla
3.9.1.1191 09.10.14

DDOC turvaparandused:

  • Parandatud DDOC failide XML struktuuri kontrolli. Tegemist on väga olulise DDOC failide kontrollimist mõjutava turvaparandusega. Paranduseta teek võib vigaste, vales järjekorras XML elementidega DDOC failide kontrollimisel anda ekslikult positiivse tulemuse.
N/A
3.9.0.1167 01.07.14
  • Täiustatud allkirjastaja sertifikaadi CA ahela pikkuse kontrolli allkirja loomise ja valideerimise ajal. Varasemalt ei olnud võimalik allkirja luua, kui sertifikaadiahelas oli ainult üks CA sertifikaat. 
  • Täiustatud DDOC failide valideerimist. Lisatud allkirjastaja sertifikaadi andmete vastavuse kontroll X509SerialNumber ja X509IssuerName elementide sisule.
  • Täiustatud DDOC failide valideerimist. Lisatud DDOC failides mittetoetatud Transforms elementide kontroll.
  • Muudetud allkirja lisamise ja eemaldamise piiranguid vigadega failide korral (k.a. failid, mis on kehtivad hoiatusega). Allkirja lisamise ja eemaldamise piiranguid ei ole (v.a. vanas formaadis failidele: DIGIDOC-XML 1.0, 1.1, 1.2).
  • Parandatud viga, mis avaldus jutumärkide käsitlemisel ClaimedRole ja SignatureProductionPlace elementides allkirja loomise ja valideerimise ajal. Vastavalt Canonical XML versioonile 1.0, jutumärke enam kanoniseerimise ajal ei asendata. Tähele tuleks panna, et failid, mis sisaldavad nendes elementides jutumärke ja on loodud 3.9 teegiga ei pruugi ühilduda 3.8 teegiga.
  • Parandatud <,>,& ja reavahetuse erimärkide käsitlemist X509IssuerName ja ResponderID elementides. Tähemärgid asendatakse nüüd kanoniseerimise ajal vastavalt Canonical XML versioonile 1.0. Tähele tuleks panna, et failid, mis sisaldavad nendes elementides erimärke ja on loodud 3.9 teegiga ei pruugi ühilduda 3.8 teegiga.
  • Parandatud viga, mis avaldus, kui parsiti DDOC dokumendi andmefaili nime, mis sisaldas erimärki “&”. Varem kuvati erimärk ekslikult alternatiivses vormis.
  • Parandatud viga, mis avaldus allkirja loomise ajal, kui Windowsis kasutati ümber suunatud katalooge. DDOC failide kirjutamine ümbersuunatud kataloogi vahel ebaõnnestus sünkroniseerimise probleemide tõttu.
  • Parandatud viga, mis põhjustas teegi ootamatu sulgumise, kui üritati parsida DDOC faili, mis sisaldas palju valideerimise vigasid.
  • Muudetud CDOC krüpteerimisel pakkimise funktsionaalsus mittesoovitatuks. Vaikimisi ei pakita andmeid kunagi.  Eemaldatud DENC_COMPRESS_MODE konfiguratsioonifaili muutuja.
  • Uuendatud cdigidoc.exe utiliidi käske "-encrypt-sk", "-encrypt-file" ja "-encrypt" selliselt, et "MimeType", "OriginalMimeType" ja "orig_file" krüpteerimise atribuudid määratakse vastavalt CDOC 1.0 spetsifikatsioonile.
  • Muudetud ddsGetStatus() funktsioon DigiDocService.h sisendfailis mittesoovitatuks (deprecated). Selle asemel peaks kasutama ddsGetStatusWithFile(), mis võimaldab määratleda allkirjastatava DDOC faili nime.
  • Lisatud cdigidoc-exe utiliiti käsk "-mid-test", mida tuleks kasutada ainult testimisel. Käsk võimaldab testida kogu Mobiil-ID allkirjastamise protsessi k.a. uue DDOC konteineri loomine, andmefaili lisamine, allkirja loomine, loodud allkirja kontrollimine ja andmefailide konteinerist välja salvestamine.
  • Parandatud cdigidoc utiliidi "-libraryerrors" muutuja funktsionaalsust. Kui muutuja on määratud, siis ainult teegi vead tagastatakse kui "LIBRARY-ERROR".
  • Kasutatud coverity.com staatilise analüüsi tööriista lähtekoodi vigade ja puuduste leidmiseks.
N/A
3.8.0.1135 18.12.13
  • Lähtekoodi vigade ja nõrkuste avastamiseks hakatud kasutama statistilise analüüsi tööriista coverity.com. Parandatud avastatud ressursilekke ja NULL-viida probleem.
  • Parandatud meetod createDataFileInMemory(), lisatud fikseeritud SHA-1 räsitüübi väärtus uue andmefaili loomisel.
  • Lisatud uue CA serdi KLASS3-SK 2010 tugi.
  • Parendatud allkirjastaja serditee valideerimist, lisatud kontroll, kas kõigi ahela sertide kehtivusperiood sisaldab allkirja loomisaega (välja producedAt väärtus OCSP vastuses).
  • Parendatud veatöötlust puuduvate CA-sertide ja vale vorminguga sertide korral, sel juhul tagastatakse veakood 36. CA-sertide puhul toetatakse ainult PEM-vormingut.
  • Lisatud andmefailide sellise konteinerist lahtipakkimise tugi, et andmeid hoitakse üksnes sisemälupuhvrites. Lisatud utiliitprogrammi cdigidoc.c käsk –extract-mem.
  • Lisatud valideerimistugi Soome toodangu ja testsertide abil loodud DDOC-i allkirjade jaoks. Serdifailid tuleb installida eraldi pakkidena. Toodangu sertide pakk sisaldab Soome CA-juurserti (http://fineid.fi/default.aspx?id=596) ja Soome riikliku usaldusteenuse loendisse (TSL) kuuluvaid serte (https://www.viestintavirasto.fi/attachments/TSL-Ficora.xml). Soome testserte (http://fineid.fi/default.aspx?id=597) sisaldab üldine testsertide pakk.
  • Parandatud veatöötlus NULL-väärtuste esinemisel DDOC-faili vormingu- ja versioonimuutujates. Tänusõnad. Sertifitseerimiskeskus ja Riigi Infosüsteemi Amet avaldavad tänu panuse eest Aivar Liimetsale.
  • Lisatud võimalus saada kõigi DDOC-failide parsimisel ja valideerimisel leitud valideerimisvigade koodid ainult ühe veakoodi asemel, mille tagastab valideerimisfunktsioon verifySignatureAndNotary(). Lisatud veakood 173, mis tagastatakse mitme vea korral. Teegi kasutaja peab kontrollima mitme vea loendit uute API-funktsioonide getLastErrorsIdx(), getErrorsInfo() abil (lähtefailis DigiDocError.c).
  • Teeki lisatud hoiatuste süsteem. Väheoluliste tehniliste vigade esinemisel allkirjastatud DigiDoci failis kasutatakse valideerimistulemust „VALID WITH WARNINGS” (hoiatustega kehtiv), mis tähendab, et fail on õiguslikult kehtiv, kuid edasisi muudatusi (allkirjade lisamine/eemaldamine) piiratakse. Programmeerijatel on soovitatav realiseerida „VALID WITH WARNINGS“ (hoiatustega kehtiv) valideerimise staatuse kasutamine dokumentatsioonis esitatud kirjelduste kohaselt. Hoiatuste süsteem on teostatud utiliitprogrammis cdigidoc.c (samaselt töölauarakendusega DigiDoc3 Client), hoiatusolukorrad hõlmavad alljärgnevat:
    • puudub DDOC-faili elemendi <DataFile> atribuut xmlns (veakood 169);
    • DigiDoci faili vorming on ametlikult tunnustatust vanem, s.t fail on DDOC 1.0, 1.1, 1.2 (veakood 171);
    • puudub DDOC-faili elemendi <X509IssuerName> või <X509SerialNumber> atribuut xmlns (veakood 170);
    • allkiri on loodud testserdi abil (veakood 172).
  • Muudetud DigiDoci faili valideerimistulemuse olekute prioriteete.
  • Lisatud veakoodid 168 (ERR_DF_NAME), 169 (ERR_DF_WRONG_DIG), 170 (ERR_ISSUER_XMLNS), 171 (ERR_OLD_VERSION), 172 (ERR_TEST_SIGNATURE), 173 (ERR_UNKNOWN_ERROR). Parandatud välja nonce asn.1 prefiksis verifitseerimine juhul, kui nonce'il puudub prefiks, kuid esimesed kaks baiti vastavad nõutavale prefiksi väärtusele.
  • Lisatud allkirjastaja rollide valideerimiskontroll. Teek toetab DDOC-failis maksimaalselt kahte elementi <ClaimedRole>.
  • Lisatud elemendi <DataFile> atribuudi fileName topelt esinemise kontroll. Ei toetata mitut sama failinimega andmefaili ühes konteineris.
  • Parendatud elemendi <DataFile> atribuudi Id valideerimist. Lisatud elemendi <DataFile> atribuudi Id väärtuse DO (suur O, mitte null) tugi.
  • Parendatud veatöötlust vigaste DDOC-failide puhul, kus puudub element <DataFile>. Niisuguste failide puhul genereeritakse viga 44 ERR_BAD_DATAFILE_COUNT.
  • Parandatud CDOC-faili elemendi <EncryptionProperty Name="DocumentFormat"> väärtust, ENCDOC-XML 1.1 asemel kasutatakse ENCDOC-XML 1.0.
  • Parandatud käsu –validate väljundit utiliitprogrammis cdigidoc.c, et kuvada valideerimistulemus õigesti juhul, kui üks mitmest allkirjast on vigane.
  • Eemaldatud utiliitprogrammist cdigidoc.c käsurea parameeter -list, muudetud käsku -verify selliselt, et see asendab käsu -list (valideerib faili ja ka prindib andmefailide loendi).
  • Parandatud veatöötlus utiliitprogrammis cdigidoc.c juhul, kui DDOC-faili nimi sisaldab failinimes ka teksti „.cdoc”.
  • DigiDoci failides, kus puudub elemendi <DataFile> atribuut xmlns, ei ole lubatud allkirjade lisamine ega eemaldamine.
  • Eemaldatud konfiguratsioonifaili parameeter CHECK_SIGNATURE_VALUE_ASN1. Vigase ASN.1 prefiksi väärtusega allkirjaväärtusi ei loeta kehtivaks.
  • Funktsioon verifiedByWrongDataFileHash() muudetud vananenuks.
DDOC-i/CDOC-i turvaparandused:
  • Lisatud kontroll, kas verifitseeritavad elemendid <DigestValue> ja <ClaimedRole> paiknevad allkirjastatud sisus. See on väga oluline turbeparandus. Selle paranduseta võidakse verifitseerimisel õigeks lugeda ründesihilised ddoc-failid andmetega, mida pole allkirjastanud algne allkirjastaja, vaid hiljem lisanud kolmas isik.
  • Parandatud OCSP vastuse valideerimist, lisatud kontroll, kas OCSP vastus vastab allkirjastaja serdile. See on väga oluline turbeparandus. Selle paranduseta võidakse verifitseerimisel õigeks lugeda muudetud OCSP vastusega spetsiaalselt loodud ddoc-fail.
  • Muudetud CA-sertide otsimise protsessi. Serte otsitakse turvalisest programmifailide kataloogist, mis on määratud konfiguratsioonifaili parameetriga CA_CERT_PATH, mitte töökataloogist. See on väga oluline turbeparandus. Ilma selle paranduseta võiks teek kasutada CA-serdi faile, mis on võib-olla lisatud töökataloogi pahatahtliku kavatsusega.
  • Parandatud vigase digestvalue märgendiga failide avamist. Turvaparandus mõjutab DDOC failide verifitseerimist. Tänusõnad. Sertifitseerimiskeskus ja Riigi Infosüsteemi Amet avaldavad tänu panuse eest Aivar Liimetsale.
N/A
3.7.2.1115 22.08.13 Parandatud kriitiline viga DDOC failide käsitluses. Seda viga ära kasutades on võimalik infosüsteemis üle kirjutada suvalisi faile, kui ründaja meelitab kasutaja avama spetsiaalselt vormindatud digiallkirjastatud fail

N/A

3.7.1.992 09.04.13 Muudetud ilma xmlns atribuudita DDOC konteinerite käsitlust. Lisainfo. N/A
3.7.0.910 01.2013
  • Lisatud utiliiti CDOC dekrüpteerimisel sloti valimise võimalus
  • Parandatud DDOC verifitseerimisel allkirjastaja sertifikaadi väljaandja otsimist
  • Parandatud DDOC OCSP räsi kontrolli veakäsitlust - veateated korrektsed mitme veaga konteineri puhul
  • Parandatud DDOC verifitseerimise funktsiooni verifySignatureInfoCERT veakäsitlust
  • Lisatud utiliiti CDOC dekrüpteerimise testimiseks dekrüpteeritud transportvõtmega variant
  • Parandatud CDOC paddingu kontrolli
  • Parandatud CDOC PKCS#7 paddingu käsitlust - nüüd PKCS#7 padding openssl teegi hallata
  • Parandatud DDOC allkirjastamise funktsiooni ddocLocateSlotWithSignatureCert - digitempli kasutamine paranenud
  • Parandatud DDOC allkirjastamisel OCSP vastuse käsitlust
  • Parandatud CDOC xml-enc järgset pakkimist
  • Parandatud CDOC algse failinime käsitlust - ei lisata kataloogi teed CDOC konteinerisse
  • Parandatud CDOC dekrüpteerimisel täpitähtede käsitlust
  • Lisatud DDOC allkirjastamisel OSX -s keychain tugi juurdepääsutõendite jaoks
  • Parandatud DDOC verifitseerimise veakäsitlust kui väljaandja sertifikaadid puudu
  • Parandatud DDOC verifitseerimise funktsiooni readAuthorityKeyIdentifier
  • Lisatud DDOC allkirjastamisel signDocumentWithSlotAndSigner funktsioon - võimaldab üle CAPI/CNG allkirjastada
  • Lisatud DDOC mälus allkirjastamise võimalus - ajutisi faile maha ei salvestata
  • Lisatud CDOC mälus krüpteerimise ja dekrüpteerimise võimalus - ajutisi faile maha ei salvestata
  • Parandatud DDOC allkirjastamisel ja verifitseerimisel XML juurelemendis xmlns peegeldamise loogikat
  • Lisatud DDOC allkirjastamisel PKCS12 tugi
  • Parandatud CDOC dekrüpteerimise funktsiooni EVP_DecodeUpdate - puhvri suuruse parendus
  • Parandatud DDOC allkirjastamisel ja verifitseerimisel funktsiooni notarizeSignatureWithIp ja finalizeAndVerifyNotary2 - toetatud seadistus kus ocsp responderi sertifikaat on väljastatud erinevast ahelast kui allkirjastaja oma
  • Parandatud DDOC allkirjastamisel ja verifitseerimisel allkirja väärtuse ASN.1 räsi kirjelduse käsitlust - toetatud on 13 ja 15 baidised väärtused
  • Lisatud DDOC verifitseerimisel BOM (Byte order mark) märkide tugi
  • Parandatud DDOC verifitseerimise veakäsitlust kui OCSP responder sertifikaat puudu
  • Eemaldatud DDOC allkirjastamisel tugi versioonidele 1.0, 1.1 ja 1.2. Toetatud on ainult verifitseerimine ja konteineri lahti pakkimine. Konteineri loomine, allkirja lisamine ning eemaldamine ei ole enam toetatud
  • DDOC/CDOC turvaparandused:
    • Lisatud DDOC allkirjastamisel ja verifitseerimisel nonce välja ASN.1 struktuuri kontroll. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda vale ASN.1 struktuuriga nonce väljaga konteineri.
    • Lisatud DDOC allkirjastamisel ja verifitseerimisel allkirja väärtuse ASN.1 struktuuri kontroll. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda vale ASN.1 struktuuriga allkirja väärtusega konteineri.
    • Parandatud DDOC allkirjastamisel ja verifitseerimisel allkirja nonce välja kontrolli. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda vale allkirja nonce välja väärtusega konteineri.
    • Eemaldatud EMBEDDED tüüpi DDOC failide tugi verifitseerimisel. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda EMBEDDED DDOC konteineri.
    • Parandatud vigase DataFile tag-ga DDOC allkirja verifitseerimist. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib olla võimalik rakenduse kokkujooksmine või volitamata koodi käivitamine pahatahtlikult koostatud DDOC faili avamisel.
  • Lähtekood
N/A
3.6.0.26 05.2012

Muudatused võrreldes versiooniga 2.6.0.18 

  • Muudatused vastavalt ETSI Plugtesti tulemustele 
  • Muudatused vastavalt ristkasutuse testide tulemustele (jdigidoc, libdigidoc ja libdigidocpp). (DDOC, CDOC) 
  • Eemaldatud DETACHED, HASHCODE, DDOC 1.4, BDOC tugi 
  • CDOC padding parendused 
  • Uuendatud dokumentatsiooni kataloogis SK-CDD-PRG-GUIDE 
  • Lisatud tarkvarapõhiste privaatvõtmete tugi 
  • DDOC/CDOC turvaparandused
    • Vigase orig_file tag-ga CDOC faili dekrüpteerimise või sisu vaatamise parandus. Olulise mõjuga turvaparandus, mõjutab CDOC dekrüpteerimist. Paranduseta teegiga võib olla võimalik rakenduse kokkujooksmine või volitamata koodi käivitamine pahatahtlikult koostatud CDOC faili avamisel.
    • Vigase EncryptionProperty tag-ga CDOC faili dekrüpteerimise või sisu vaatamise parendus. Olulise mõjuga turvaparandus, mõjutab CDOC dekrüpteerimist. Paranduseta teegiga võib olla võimalik rakenduse kokkujooksmine või volitamata koodi käivitamine pahatahtlikult koostatud CDOC faili avamisel.
    • Hashcode DDOC faili ehk DigiDocService teenuse vahepealse resultaatfaili verifitseerimise parendus. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda vigase nö hashcode DDOC konteineri.
    • Detached DDOC failide verifitseerimise parendus. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda detached DDOC konteineri.
    • Allkirja verifitseerimisel lisatud sertifikaadis määratud võtme kasutusala kontroll. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda allkirja, mis ei ole loodud korrekse sertifikaadi põhjal.
  • Versioonide nummerdamisel minnakse üle samale loogikale, mis teistel baastakarvara komponentidel (3.5, 3.6 ...)
  • Lisatud Mobiil-ID allkirjastamise tugi cdigidoc utiliiti 
  • API muudatused funktsioonides dencOrigContent_findByIndex, dencMetaInfo_GetLibVersion ja dencMetaInfo_GetFormatVersion
  • Lähtekood
N/A


Kasutatavad teegid

OpenSSL 0.97cInfo: http://www.openssl.org
Allalaadimine: ftp://ftp.openssl.org/snapshot/

LibXML2 2.6.14
Info ja allalaadimine: http://xmlsoft.org/

Iconv 1.9.1
Info ja allalaadimine: http://www.gnu.org/software/libiconv/

ZLib 1.2.1.0
Info ja allalaadimine: http://www.zlib.net/ 

Teegi kasutustingimused

Teeki levitatakse teeki LGPL-litsentsi alusel. Teeki võib vabalt kasutada nii vabavaralistes kui kommertsrakendustes. Kasutamisel tuleb järgida ka OpenSSL litsentsiinfot, sealhulgas peab iga tootega panema kaasa ka OpenSSL -teegi litsentsi.


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