IZENPEren sinatzeko eta zifratzeko applet-a EDUKIEN AURKIBIDEA GARAPENAREN DESKRIBAPENA ...........................................................................................3 1.1 Garatutako osagaiak ............................................................................................................ 3 1.2 Erabilitako liburutegien lizentzia ......................................................................................... 3 1.3 Funtzionaltasun nagusia ...................................................................................................... 4 Instalatzeko eskakizunak ............................................................................................................... 8 SINADURA LOKALERAKO APIA .............................................................................................9 1.4 1.5 1.6 1.7 1.8 ID@ZKI skin edo gaiak........................................................................................................ 10 API ID@ZKIren metodo komunak ...................................................................................... 11 Web-orri batetik erabiltzea (Applet-a) .............................................................................. 30 Windows aplikazio batetik DLLaren bitartez erabiltzea (dllwrapper) ............................... 33 Windows inguruneko aplikazio batetik SOAP bidez erabiltzea ......................................... 35 APIAREN ADIBIDEAK .......................................................................................................... 37 1.9 Applet-a/JavaScript ............................................................................................................ 37 1.10 DLL (C++ lengoaian, DLLWrapper bidez) .......................................................................... 41 MAHAIGAINEKO APLIKAZIOA ............................................................................................. 43 1.11 1.12 1.13 1.14 Instalatzea / desinstalatzea ............................................................................................. 43 Aplikazioa erregistratzeko prozedura .............................................................................. 47 Aplikazioaren erabilera .................................................................................................... 50 Alderdi teknikoak ............................................................................................................. 56 ALDAKETEN KONTROLA ..................................................................................................... 58 Garapenaren deskribapena 1.1 Garatutako osagaiak Applet-a: nabigatzaile baten barruan integratu ahal izateko applet itxura duen Java aplikazio bat da, elektronikoki sinatzeko, zifratzeko eta TIES kodea lortzeko funtzionaltasuna duena. Funtzionaltasun hori 2. kapituluan zehazten da. Mahaigaineko sinaduraren aplikazioa, instalagarriekin: osagai hau Java aplikazio bat izango da, sinadura elektronikoko oinarrizko eragiketak nabigatzailerik gabe egiteko aukera emango duena. Funtzionaltasun hori 3. kapituluan zehazten da. Mahaigaineko sinaduraren aplikazioak Windows, Linux eta OSX sistemetarako instalagarri bat dakar. WebService/SOAP, DLL espezifiko baten bidez eskura daitekeena: AXIS2 aplikazioen zerbitzari baten multzoa da, sinadura lokaleko zerbitzuak eskaintzen dituena, DLL batetik eskura daitekeena. Zerbitzaria eskuz edo DLLaren bidez abiaraz daiteke. Windows sistemetarako besterik ez. Proba sortak: garapenaren balioduntasuna egiaztatzeko hainbat proba sorta daude. Proba sortak 2 motakoak dira: o Sortutako sinadurak baliozkotzeko probak (Z@IN-en kontra). o Sistema eragileekiko bateragarritasun-probak. Dokumentazioa: dokumentazio hau. 1.2 Erabilitako liburutegien lizentzia Erabilitako liburutegiak eta lizentziak honako hauek dira: iText 2.1.7: MPL eta LPGL. Bouncycastle 1.43-jdk1.6: MIT X11 License. Apache XMLSEC 13.0: Apache License. Apache Xalan j_2_7_0: Apache License. Apache Xerces j_2_7_0: Apache License. 1.3 Funtzionaltasun nagusia 1.3.1 Applet-ean eta nabigatzaileak mahaigaineko aplikazioan onartutako sistema eragileak Nabigatzaileen / sistema eragileen konbinazio hauek onartzen dira: IE6 W2000 WXP WV32 WV64 W7 UBU804 OSUSE10 FEDCOR9 FEDCOR11 OSX106INT OSX105INT OSX104INT IE7 IE8/9 FF3+ CSTORE CSTORE CSTORE CSTORE CSTORE CSTORE CSTORE CSTORE CSTORE CSTORE SAF CSTORE CSTORE P11/P12 P11/P12 P11/P12 P11/P12 P11/P12 P11/P12 P11/P12 IE6 = Internet Explorer 6 / IE7 = Internet Explorer 7 / IE8/9 = Internet Explorer 8 eta 9 / FF3+ = Firefox 3 edo berriagoak / SAF=Safari 4 / W2000 = Windows 2000 / WXP = Windows XP / WV32 = Windows Vista 32 bit / WV64 = Windows Vista 64 bit / W7 = Windows 7 /UBU804 = Ubuntu 8.04 LTS / OSUSE10 = OpenSuse 10 / FEDCOR9 = Fedora Core 9 / / FEDCOR9 = Fedora Core 11 / OSX106INT = OS X 10.6 Intel / OSX105INT = OS X 10.5 Intel / OSX104INT = OSX 10.4 Intel / P11 = PKCS#11-rako euskarria / P12 = PKCS#12-rako euskarria / CSTORE = Windows-en biltegi kriptografikorako euskarria / 1.3.2 Inplementatutako primitibo kriptografikoak Sinadura elektronikoa honako formatu hauekin: o XMLDSig/XAdES (BES, EPES, T, C1, XL) enveloping/enveloped/detached. Paraleloko multisinadura (enveloping sinaduretarako) eta kontrasinadura (enveloped sinaduretarako) onartzen ditu2. o CMS/CAdES (BES, EPES, T, C) attached/detached. Paraleloko multisinadura eta kontrasinadura onartzen ditu (kontrasinadurak ez ditu onartzen paraleloko multisinaduran) attached moduan. CMS dettached multisinadura. o XMLDSig enveloping/enveloped/detached. Multisinadura onartzen du. o PDF3 (denbora-zigiluarekin eta gabe). CMS attached eta dettached formaturako sinadura egiaztatzea. PKCS#11-rako, PKCS#12-rako eta Windows-en biltegi kriptografikorako euskarria. SHA-1 eta SHA-256 laburpen-kalkulua. Ziurtagiriak IZENPEren OCSParen kontra baliozkotzea4. Denbora IZENPEren TSAren kontra zigilatzea. 3DES-CBC zifratzea/deszifratzea pasahitzarekin. Ziurtagiriak biltegi kriptografikoetan bilatzea. 1 XAdES-C eta CAdES-C motetarako Izenperen OCSP erantzuna besterik ez da gehituko. 2 Dokumentu bati sinadura gehitu baino lehen, dauden sinaduren balioduntasun kriptografikoa egiaztatuko da. 3 4 Ez da babestutako PDFrik onartzen, ezta XFA inprimakiak dituen PDFrik ere. Sinatzen den bakoitzean, lehenago ziurtagiria ezeztatuta edo etenda ez dagoela egiaztatuko da. 1.3.3 Onartutako sinadura-formatuak Hurrengo taulan ikus daiteke applet-aren bertsio bakoitzerako onartutako sinaduren zerrenda. 1.0 1.0.1 XAdES-BES XAdES-EPES XAdES-T XAdES-C XAdES-X XAdES-XL XAdES-A XAdES-Enveloped XAdES-Enveloping XAdES-Detached CAdES-BES CAdES-EPES CAdES-T CAdES-C CAdES-X CAdES-XL CAdES-A CAdES-Atached CAdES-Detached PDF PDF denbora-zigiluarekin 1.1 1.2 Applet-aren bertsioa 1.3 1.3.1 1.4 1.4.1 1.4.8 1.5.1 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8+ 1.3.4 Onartutako gailuak Windows Txartela Mota Oharrak CAPI CAPI NANe pkcs11 Izenpe pkcs11 Izenpe pkcs11 Modu lehenetsian sistema hau erabiltzen da. Beraz, CAPIrekin integratzen diren txartel guztiak onartzen dira. Bide-izena: “c:\\windows\\system32\\UsrPkcs11.dll;" Bide-izena: “c:\\windows\\system32\\aetpkss1.dll” Bide-izena: “c:\\windows\\system32\\bit4ipki.dll” Linux Txartela Mota Oharrak NANe (Izenperen driver-a) pkcs11 Izenpe pkcs11 Opensc pkcs11 Bide-izenak: "/usr/lib/dniepkcs11.so" "/usr/lib64/dniepkcs11.so" Bide-izenak: “/usr/lib/libbit4ipki.so” “/usr/lib64/libbit4ipki.so" Bide-izena: /usr/lib/opensc-pkcs11.so; Mac Txartela Mota Oharrak Izenpe pkcs11 Opensc pkcs11 Bide-izena: “/System/Library/Izenpe/pkcs11/libbit4ipki.dylib” Bide-izena: “/Library/OpenSC/lib/opensc-pkcs11.so" Instalatzeko eskakizunak 1.3.5 Applet-a / Mahaigaineko aplikazioa Java SUN 1.6+ instalatuta izatea (1.5+ OSX-en kasuan). JCE Unlimited Strength Jurisdiction Policy Files instalatuta izatea. Pakete hau Java SE plataformaren osagai gehigarri gisa eskaintzen da. Gailu kriptografikoak instalatuta izatea, erabili nahi badira. IZENPEren TSAren eta OCSParen URLetarako sarbidea izatea. Java plugin-aren kontrol-panelean behar adina memoria ezarrita izatea (konfiguratzeko parametroa: -Xmx1024m)5. 1.3.6 Sinatzeko WSa, DLLrako euskarriarekin Ez da inongo eskakizunik behar, zerbitzariak Java bertsio propioa du-eta. 5 da. Fedora-ren kasuan, $JAVA_HOME barruan ‘bin’ karpetan dagoen ControlPanel izeneko exekutagarri bat Sinadura lokalerako APIa Aplikazioek beren prozesuetan sinadura elektronikoa behar bezala integratzeko aukera izan dezaten, ID@ZKIk hainbat teknologiatarako API komuna eskaintzen du. Horri esker, funtzionaltasunak bateratu egin daitezke. Gaur egun ID@ZKIk hiru modu eskaintzen ditu sinadura lokaleko zerbitzuak eskuratzeko: WEB aplikazioetan, JavaScript-etik deitutako applet baten bitartez. Windows aplikazio generikoetan, DLL baten bitartez. Windows aplikazio generikoetan, SOAP zerbitzari baten bitartez. Eragiketa horiek egin ahal izateko honako arkitektura hau erabili da: WINAPPS DLL WEBAPPS Applet-a (IZENPELIB) Nabigatzailea JAVA 1.6 SO SINADURA LOKALEKO SOAP (https://127.0.1.18080) + IZENPELIB AXIS2 WS zerbitzaria JAVA 1.6 espezifikoa Eskeman agertzen diren osagaiak honako hauek dira: WEBAPPS: WEB aplikazioak. Bezero-zatian (JavaScript) applet-aren funtzioei deitzen diete. Nabigatzailea: Internet Explorer, Firefox edo Safari; HTML bidez kargatzen dute applet-a. Java 1.6 SO: Sistema eragilean instalatutako Java. Applet-a: JavaScript-etik dei daitezkeen funtzioak dauzkan .jar fitxategi bat da. JAR fitxategi horrek dauzka Izenpelib liburutegiak. WINAPPS: Sinadura lokaleko zerbitzaria erabiltzen duten Windows aplikazioak dira. Zuzenean erabil ditzakete SOAP deiak edo, bestela, DLL baten bitartez egin. SINADURA LOKALEKO SOAP: Sinadura lokaleko eragiketak SOAP protokoloaren bitartez egiteko erabilgarri dagoen zerbitzua da. IzenpeLib liburutegia erabiltzen du. AXIS2: WS SOAP maneiatzeko ahalmena eskaintzen duen aplikazio-zerbitzaria da. Java 1.6 espezifikoa: Sinadura lokaleko zerbitzuen banaketak Java-ren bertsio propioa dauka bere baitan, zerbitzuak ingurune heterogeneoetan instalatu ahal izateko. 1.4 ID@ZKI skin edo gaiak Skin edo gaiek aukera ematen dute applet-aren ondorengo osagaiak applet-a bera aldatu gabe ordezkatzeko. Skin-paketeak honako hauek ditu: I18n.properties: lokalizazio-fitxategia; bertan definitzen dira applet-ak erabilgarri dagoen hizkuntza bakoitzerako (ES, EU) bistaratu beharreko literalak. izenpelogo.jpg: applet-aren goiburuko irudia. Paketea applet-a kargatzen den bide-izen berean sartu behar da, baina hura baino lehen, ordezkatzea behartzeko. Ordezkatze hori funtzionala da applet-aren edozein erabileratarako, baina web eta dll bertsioetan baino ez da probatu. Esate baterako, web inguruneetan honako hau izango litzateke karga: <applet code="izenpe.app.applet.AppletApplication.class" archive="../applet-skins/biscaytik-skin.jar, ../applet/1.7/izenpesigner-applet.jar" MAYSCRIPT id="applet" width="1" height="1"> 1.5 API ID@ZKIren metodo komunak 1.5.1 getLastError Gertatutako azken errorea berreskuratzeko aukera ematen du. DEIAREN FORMATUA TestuKatea getLastError() ITZULERA Gertatutako azken errorearen mnemonikoa Errorearen mnemonikoa ERR_INCORRECTPPASSWORD ERR_PIN_LOCKED ERR_BADPASSWORDORCORRUPTFILE ERR_CANNOTOPENFILE_FILENAME ERR_CANCELEDBYUSER ERR_CANNOTUSEPKCS12_FILENAME ERR_CANNOTUSEPKCS11_FILENAME ERR_CANNOTUSESYSTEMCRYPTOSTORE ERR_INVALIDPARAMETERS_PARAMETERS ERR_INVALIDADESLEVEL_PARAMETERS ERR_INVALIDSIGNATUREOPERATION_PARAMETERS ERR_CANNOTCREATESIGNATURE ERR_CANNOTCIPHERDOCUMENT ERR_CANNOTDECIPHERDOCUMENT ERR_NOCERTIFICATESFORSIGN ERR_SHOULDINSTALLJREPOLICYFILES ERR_PASSWORDSDOESNOTMATCH ERR_BROWSERNOTFOUNDGOTOPAGE_URL ERR_BADPASSWORDORCORRUPTFILE ERR_CANNOTRETRIEVETIESPUBLIC ERR_INTERNALERROR ERR_SELECTEDCERTIFICATEISREVOKED ERR_CANNOTCREATETIMETSAMP ERR_CANNOTSIGNPROTECTEDPDF ERR_CANNOTLOADCONFIG ERR_CANNOTFINDTIESCARD Okerreko PINa. Hiru saio jarraian eginez gero txartela blokeatu egingo da. Txartela blokeatuta dago. Pasahitza ez da zuzena edo fitxategia hondatuta dago. Ezin izan da fitxategi bat ireki Erabiltzaileak ezeztatu egin du eragiketa Ezin izan da PKCS#12 bat ireki Ezin izan da PKCS#11 bat erabili Ezin izan da Windows-en biltegi kriptografikoa erabili. Parametro baliogabeak pasatu zaizkio dei bati. AdES maila bat gaizki zehaztu da Parametro baliogabeak pasatu zaizkio sinadura-dei bati. Ezin izan da sinadura sortu. Ezin izan da dokumentu bat zifratu. Ezin izan da dokumentu bat deszifratu. Ez da sinatzeko ziurtagiririk aurkitu. Sun JCE instalatu gabe daude. Huts egin du pasahitza egiaztatzeak. Ezin izan da web-nabigatzaile bat ireki. Ezin izan da fitxategi bat deszifratu, pasahitza okerrekoa zelako edo fitxategia hondatuta zegoelako. Ezin izan da TIES kodea berreskuratu Barne-errore bat gertatu da. Hautatutako ziurtagiria ezeztatuta dago. Ezin izan da denbora-zigilu bat sortu. Ezin da babestutako PDF bat sinatu. Ezin izan da konfigurazioa irakurri. Ezin izan da TIES kodea berreskuratu ERR_INVALIDVERIFYOPERATION_PARAMETERS ERR_CANNOTVERIFYDOCUMENT ERR_NOFILESSELECTED ERR_INVALIDVERIFYOPERATION_PARAMETERS 1.5.2 Sinadura egiaztatzeko eragiketarako parametro baliogabeak Ezin izan da dokumentu baten sinadura egiaztatu Ez da fitxategirik hautatu. Errorea sinadura egiaztatzeko dei-parametroetan. setOption Applet-aren portaeraren aukera generiko bat ezartzen du. DEIAREN FORMATUA setOption(TestuKatea key, TestuKatea value) PARAMETROAK key: gakoa value: balioa Aukera hauek eskaintzen ditu: Gakoa Funtzionaltasuna crypto-winusepkcs11 Zehazten du Windows-ek lehenago probatu behar duen PKCS#11 erabiltzea Windows-en CSP erabili beharrean. crypto-pkcs11libs Kargatzen ahalegintzen diren PKCS#11 liburutegien zerrenda zehazten du, puntu eta komaz bereizita. Zerrenda lehenetsia honako hau da: “aetpkss1.dll;UsrPkcs11.dll;/usr/lib/opensc-pkcs11.so” timestamp-url Data-zigiluaren zerbitzariaren URLa timestamp-policyoid Data-zigiluaren zerbitzariaren eskatutako politikaren OIDa timestamp-hashalgo Data-zigiluaren hash algoritmoa (SHA-1 edo SHA-256) signature-hashalgo Sinatzeko applet-a signature-signerrole Sinatzailearen eginkizuna CAdES/XAdES sinaduretan 6 ades-add-policy “1” baldin eta politika CAdES/XAdES motako sinadurei gehitu behar bazaie. xades-signature-policy-id-identifier XAdES politikaren identifikatzailea xades-signature-policy-id-description XAdES politikaren deskribapena xades-signature-policy-hash XAdES sinaduretarako politikaren hash-a xades-signature-policy-hashalgo XAdES sinaduretarako politikaren hash algoritmoa xades-signature-policy-qualifier-url XAdES sinaduretarako EPES politikaren URLa 6 Aukera honen balioa “1” bada, parametro hauek ezarri beharko dira: xades-signature* XAdES motetarako edo cades-signature* CAdES motetarako. Bi sinaduretan, Izenpek balio lehenetsiak esleituko ditu. xades-node-to-sign-name xades-node-to-sign-root cades-signature-policy-oid cades-signature-policy-hash cades-signature-policy-hashalgo pdf-signature-llx pdf-signature-lly pdf-signature-urx pdf-signature-ury pdf-signature-page pdf-signature-reason pdf-signature-location pdf-signature-image va-universal-ocsp-url lang dlgcertsel-certfilter dlgcertsel-selectfirst dlgcertsel-checkocsp dlgcertsel-enableocsp 7 8 Sinatu beharreko nodoaren IDa. Enveloping sinaduretarako bakarrik balio du. Enveloped sinaduretarako helburu bera duen metodo espezifiko bat dago (signXAdESEnvelopedSelectNode). ‘true’ enveloping sinaduretan dokumentuaren erroko nodoa bera sinatzeko; bestela, nodo edukitzaile bat sinatzen da (ds:Object). Aukera hau erabiltzeko beharbeharrezkoa da dokumentuaren erroko nodoak Id atributu bat edukitzea. „xades-node-to-sign-name‟ propietatea erabiltzen bada, propietate hau ez da kontuan hartzen. Enveloping sinaduretarako bakarrik balio du. Propietate honen balio lehenetsia ‘false’ da. CAdES sinaduretarako politikaren OIDa CAdES sinaduretarako EPES politikaren hash-a CAdES sinaduretarako politikaren hash algoritmoa PDF sinadura bistaratzeko X0 posizioa PDF sinadura bistaratzeko Y0 posizioa PDF sinadura bistaratzeko X1 posizioa PDF sinadura bistaratzeko Y1 posizioa PDF sinaduraren orrialdea, … -2=azken-hirugarrena, 1=azken-aurrena, 0=azkena, 1=lehena, 2=bigarrena… PDF sinaduraren arrazoia Sinaduraren lekua Definituta badago, PDF formatuetako sinadurarako irudi grafikoa zehazten du. Fitxategi baten kokapena (adibidez c:/temp/firma.gif) edo URL bat (http:// edo https:// ) zehatz daiteke. Ziurtagiri mota guztientzako OCSP baliozkotzailearen URLa Hizkuntza ( ‘0’ gaztelaniaz, ‘1’ euskaraz) Ziurtagiriak hautatzeko elkarrizketa-koadrotik hautatu ahal izango diren ziurtagirien zerrendarako iragazkia zehazten du. Onartutako politiken zerrendaren bidez zehatz daiteke, 7 “policy=oid,oid,…” katearen bitartez , edo bestela, ziurtagiri jakin batzuk zehaztu 'fingerprint sha-1'en bidez, 8 “sha1thumb=thumb1,thumb2,…” katearen bitartez . Balioa "1" bada, sinatzeko ziurtagiri bat besterik ez badago, automatikoki hautatuko du, ziurtagiria hautatzeko leihoa bistaratu gabe. Sinatzeko prozesurako hautatutako ziurtagiriaren ezeztatze-egoera egiaztatzeko ezintasunaren abisua ez du bistaratzen. Ziurtagiri sinatzailearen ezeztatze-egoera egiaztatzea desgaitzeko aukera ematen du. Balioa ‘0’ bada, ez da OCSP deia egiten. Aitzitik, balioa ‘1’ bada (balio lehenetsia), deia Esate baterako “policy=1.3.6.1.4.1.14777.104.3, 1.3.6.1.4.1.14777.104.4” Esate baterako “sha1thumb=782f84c6270ab21166c3d797140d495b7245f0a8” dlgsign-show proxy signature-dettached-ref-uri signature-dettached-ref-type hash-canonizexmlwithcomments 1.5.3 egiten da. Balioa "1" ez bada, ez du ez ziurtagiriari ez sinatu beharreko elementuei buruzko informaziorik bistaratzen. Proxy-a erabili nahi den zehazten du. Zehaztu <server>:<port> edo <server>:<port>:<usr>:<passwd> autentifikazioa erabili nahi baduzu. Kate huts batek zehazten du ez duzula proxy-rik erabili nahi. Sinatu beharreko dokumentuaren URIa zehazten du xades dettached sinaduretan. Sinatu beharreko dokumentu mota zehazten du xades dettached sinaduretan. “signature-canonizexmlwithcomments” parametroak bezala funtzionatzen du, baina kasu honetan xades dettached sinaduretan kanpoko hash-a kalkulatzeko erabilitako kanonizazio-metodoari egiten dio erreferentzia. XML ez diren sarrerako sinaduretan erabili behar da. getOption Aukera generiko baten balioa berreskuratzeko aukera ematen du. DEIAREN FORMATUA TestuKatea getOption(TestuKatea key) PARAMETROAK key: gakoa (setOption-en definitutako berberak) ITZULERA Balioaren testua. 1.5.4 getFileInfo Fitxategi bati buruzko informazioa berreskuratzen du. DEIAREN FORMATUA TestuKatea getFileInfo(TestuKatea fileName, TestuKatea what) PARAMETROAK fileName: informazioa berreskuratuko den fitxategiaren izena what: berreskuratu nahi den informazio mota. Onartzen den aukera bakarra “size” da. ITZULERA what parametroa Itzulera what Fitxategiaren tamaina. -1 existitzen ez bada ADIBIDEA c:/foo.txt fitxategiaren tamaina pantailan lortzeko: applet.getFileInfo(“c:/foo.txt”,”size”); 1.5.5 setCryptoStoreAuto Honako logika hau ezartzen du ziurtagiriak hautatzeko: Windows sistemetan: 1. crypto-winusepkcs11 parametroa definituta baldin badago, PKCS#11 interfazea duten gailu kriptografiko guztietan irakurtzen ahalegintzen da. 2. Gainera, Windows-en biltegi kriptografikoan instalatutako ziurtagiriak bilatzen ditu. Windows ez diren sistemetan: 1. PKCS#11 interfazea duten gailu kriptografiko guztietan irakurtzen ahalegintzen da. 2. Ziurtagiririk aurkitzen ez badu, PKCS#12 gako-fitxategi bat erabili nahi den galdetzen du. Aurkitutako ziurtagirien zerrenda erakusten dio erabiltzaileari, hark hautatzeko. Oharra: kontsultatu dlgcertsel* parametroak setOption()-en, elkarrizketa-koadroaren portaera pertsonalizatzeko. DEIAREN FORMATUA Boolearra setCryptoStoreAuto() ITZULERA Egiazkoa baldin eta deiak arrakasta izan badu. ** Callback (atzeradeia) funtzioen parametrizazioa: 1.7.0 bertsiotik aurrera, metodo honek aukera ematen du erantzuna ok/error (ongi/errorea) erantzuneko atzeradeietara birbideratzeko. DEIAREN FORMATUA Boolearra setCryptoStoreAuto (String successCallback, String errorCallback) ITZULERA Egiazkoa baldin eta deiak arrakasta izan badu. CALLBACK FUNTZIOEN PARAMETROAK successCallback: parametrorik gabe errorCallback: errore-mezua 1.5.6 addInput Sinatzeko, attached sinadurak egiaztatzeko, zifratzeko edo hash-a kalkulatzeko osagai bat gehitzen du. DEIAREN FORMATUA Boolearra addInput(TestuKatea outtype, TestuKatea out) PARAMETROAK intype: sarrera mota in: sarrera outtype: irteera mota out: irteera intype, TestuKatea in, TestuKatea Honako sarrera mota (intype) hauek onartzen dira: Mota file folder inline-hash inline-binary inline-text 'in' parametroak fitxategi baten izena eduki behar du 'in' parametroak direktorio baten izena eduki behar du 'in' parametroak hash baten base64 kodifikazioa eduki behar du 'in' parametroak eduki bitar baten base64 kodifikazioa eduki behar du 'in' parametroak testu-eduki bat eduki behar du Honako irteera mota (outtype) hauek onartzen dira: Mota file folder inline 'out' parametroak fitxategi baten izena eduki behar du 'out' parametroak direktorio baten izena eduki behar du Eragiketaren emaitza getOutputContent() metodoaren bidez eskuratu ahal izango da ITZULERA Egiazkoa baldin eta deiak arrakasta izan badu. ADIBIDEAK Sarrera gisa fitxategi bat eta irteera gisa fitxategi bat hautatzeko: addInput(“file”,"document.pdf",”file”,”newdoc.pdf”); Sarrera gisa direktorio bat eta irteera gisa direktorio bat hautatzeko: addInput(“folder”,"in",”folder”,”out”); Sarrera gisa hash bat eta irteera gisa fitxategi bat hautatzeko: addInput(“hash”,"UE+aTxBNj4…",”file”,”detached.xades”); Sarrera gisa testu bat eta irteera applet-arentzako deien bidez hautatzeko: addInput(“inline-text”,"helloworld!",”inline”,null); 1.5.7 addInputWithAttachement Dettached sinadurak egiaztatzeko osagai bat gehitzen du. DEIAREN FORMATUA Boolearra addInput(TestuKatea intype, String in, String inattachmenttype, String inattachement, String outtype, String out, String reserved) PARAMETROAK intype: sarrera mota in: sarrera inattachmenttype: attached eduki mota inattachement: dettached edukiaren sarrera outtype: “none” izan behar du nahitaez out: parametro erreserbatua reserved: parametro erreserbatua Honako sarrera mota (intype) hauek onartzen dira: Mota file inline-binary inline-text 'in' parametroak fitxategi baten izena eduki behar du 'in' parametroak eduki bitar baten base64 kodifikazioa eduki behar du 'in' parametroak testu-eduki bat eduki behar du Dettached edukiaren (inattachmenttype) honako sarrera mota hauek onartzen dira: Mota file inline-binary inline-text 1.5.8 'in' parametroak fitxategi baten izena eduki behar du 'in' parametroak eduki bitar baten base64 kodifikazioa eduki behar du 'in' parametroak testu-eduki bat eduki behar du clearInputs addInput(…) metodoaren bidez zehaztutako sarrera guztiak ezabatzen ditu. DEIAREN FORMATUA clearInputs() 1.5.9 getOutputCount getOutputContent(…) metodoaren bidez berreskura daitezkeen sarreren kopurua. DEIAREN FORMATUA Osokoa getOutputCount() ITZULERA Sarrera kopurua. 1.5.10 getOutputContent Sarrera “inline” motako outtype baten bidez zehaztu duen eragiketa baten edukia berreskuratzen du. DEIAREN FORMATUA TestuKatea getOutputContent(Osokoa index, Boolearra isBinary) PARAMETROAK index: berreskuratu nahi den elementuaren indizea isBinary: edukia base64-an berreskuratu nahi den adierazten du ITZULERA Eragiketaren emaitza. 1.5.11 getOutputReferenceFile Eragiketaren xede izan den jatorrizko dokumentua berreskuratzen du. DEIAREN FORMATUA TestuKatea getOutputReferenceFile (Osokoa index) PARAMETROAK index: berreskuratu nahi den elementuaren indizea ITZULERA Fitxategiaren izena. 1.5.12 sign Sinadura elektronikoa aplikatzen die addInput(…) metodoaren bidez gehitutako elementuei. DEIAREN FORMATUA Boolearra sign(TestuKatea type) PARAMETROAK type: sinadura mota Type cades-sign-attached cades-cosign-attached cades-sign-dettached cades-cosign-dettached xades-sign-dettached xades-sign-enveloping CMS/CAdES attached sinadura CMS/CAdES attached bati sinadura paraleloa gehitu CMS/CAdES dettached sinadura CAdES dettached sinadura bati sinadura paraleloa gehitu XMLDSig/XAdES dettached sinadura XMLDSig/XAdES enveloping sinadura xades-cosign-enveloped9 pdf pdf-timestamped XMLDSig/XAdES enveloped sinadura sortu/gehitu PDF sinadura PDF sinadura denbora-zigiluarekin cms-cosign-dettached ZAHARKITUA, erabili cades-cosign-dettached xades-countersign-enveloping ZAHARKITUA ITZULERA Egiazkoa baldin eta deiak arrakasta izan badu. ** Callback (atzeradeia) funtzioen parametrizazioa: 1.7.0 bertsiotik aurrera, metodo honek aukera ematen du erantzuna ok/error (ongi/errorea) erantzuneko atzeradeietara birbideratzeko. DEIAREN FORMATUA Boolearra errorCallback) sign(TestuKatea type, String sucessCallback, String ITZULERA Egiazkoa baldin eta deiak arrakasta izan badu. CALLBACK FUNTZIOEN PARAMETROAK Ez dago erabilgarri. Erabiltzaileak azken sinadura jasotzeko metodoari dei egin behar dio, berak nahi bezala tipifikatzeko (xml vs bitarra) 1.5.13 verify Attached sinaduren kasuan addInput(…) metodoaren bidez eta dettached sinaduren kasuan addinputWithAttachement(..) metodoaren bidez zehaztutako dokumentuen sinadura egiaztatzen du. DEIAREN FORMATUA Boolearra verify(TestuKatea type) 9 <Manifest> bat sinatzen baduzu, http://www.w3.org/2000/09/xmldsig#Manifest motako sinadura bat sortuko du sistemak PARAMETROAK type: egiaztatu beharreko sinadura mota Type cms-verify-attached cms-verify-dettached CMS attached sinadura CMS dettached sinadura ITZULERA Egiazkoa baldin eta deiak arrakasta izan badu. 1.5.14 signSetAdESLevel CAdES/XAdES-erako sinadura-maila ezartzen du. DEIAREN FORMATUA Boolearra signSetAdESLevel(TestuKatea level) PARAMETROAK level: sinadura-maila Type none bes t c xl CMS/XMLDSig CAdES-BES/XAdES-BES CAdES-T/XAdES-T CAdES-C/XAdES-C XAdES-XL ITZULERA Egiazkoa baldin eta deiak arrakasta izan badu. 1.5.15 cipher addInput(…) metodoaren bidez gehitutako elementuak zifratzen ditu. Bai cipher-ek eta bai decipher-ek instalatuta izan behar ditu JSE pakete gehigarriaren fitxategiak: Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File. DEIAREN FORMATUA Boolearra cipher(TestuKatea password) PARAMETROAK zifratze-pasahitza edo, bestela, “*gui”, erabiltzaileari interfaze grafikoaren bidez galdetu behar zaiola adierazteko. password: ITZULERA Egiazkoa baldin eta deiak arrakasta izan badu. 1.5.16 decipher addInput(…) metodoaren bidez gehitutako elementuak deszifratzen ditu. Bai cipher-ek eta bai decipher-ek instalatuta izan behar ditu JSE pakete gehigarriaren fitxategiak: Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File. DEIAREN FORMATUA Boolearra decipher(TestuKatea password) PARAMETROAK password: deszifratze-pasahitza edo, bestela, “*gui”, erabiltzaileari interfaze grafikoaren bidez galdetu behar zaiola adierazteko. ITZULERA Egiazkoa baldin eta deiak arrakasta izan badu. 1.5.17 hash addInput(…) metodoaren bidez gehitutako elementuen hash-a kalkulatzen du. DEIAREN FORMATUA Boolearra hash() ITZULERA Egiazkoa baldin eta deiak arrakasta izan badu. 1.5.18 getTies Txartelaren TIES kode publikoa berreskuratzen du. DEIAREN FORMATUA TestuKatea getTies () ITZULERA Deiak arrakasta izan badu TIES kodea, bestela null. 1.5.19 setCryptoStorePkcs12 PKCS#12 fitxategi baten ziurtagiriak eta gako pribatuak erabiltzen ditu. Metodo hau testing zereginetan erabiltzeko pentsatuta dago. DEIAREN FORMATUA Boolearra setCryptoStorePkcs12(TestuKatea pkcs12path,TestuKatea pin) PARAMETROAK pkcs12path: PKCS#12 fitxategiaren kokapena pin: PKCS#12 fitxategiaren gakoa ITZULERA Egiazkoa baldin eta deiak arrakasta izan badu. 1.5.19.1 signXAdESEnvelopedSelectNode XAdES formatuarekin sinatzeko aukera ematen du. Dei mota hau addInput/Sign() logikaz kanpo geratzen da, ez baitu leihorik bistaratzen egin beharreko sinadura baliozkotzeko. Sarrerako XML dokumentuaren zein nodo sinatuko diren eta sinadura zein posiziotan kokatuko den zehatz daiteke. Oharra: gomendatzen dugu signXAdESEnvelopedSelectNode metodoa erabiltzea, sinatu beharreko fitxategiaren encoding-a zehazteko aukera ematen du-eta (xmlEntradaEncoding parametro gehigarria). Metodo hori hurrengo puntuan adierazten da zehatz-mehatz. DEIAREN FORMATUA TestuKatea signXAdESEnvelopedSelectNode(TestuKatea TestuKatea nodoAFirmar, TestuKatea nodoPosiciónFirma, mecanismoCannonicalización) xmlEntrada, TestuKatea PARAMETROAK xmlEntrada: sinatu nahi den XML dokumentua. nodoAFirmar: sinatu nahi den nodoa; honakoa zehatz daiteke: edo dokumentuaren IDarekiko erreferentzia: adibidez #id edo nodoa identifikatzen duen xpath10 bat: adibidez //node. Nodo horrek identifikatzailerik ez badu, automatikoki gehituko da. nodoPosiciónFirma: sinadura txertatu nahi den nodoa; honakoa zehatz daiteke: edo dokumentuaren IDarekiko erreferentzia: adibidez #id edo nodoa identifikatzen duen xpath11 bat: adibidez //node. mecanismoCannonicalización: kanonikalizazioko12 transformaziorako erabili nahi den mekanismoa zehazten du. Balio hauetariko bat zehaztu behar da: TRANSFORM_C14N_OMIT_COMMENTS TRANSFORM_C14N_WITH_COMMENTS TRANSFORM_C14N_EXCL_OMIT_COMMENTS 10 11 12 Kontsultatu http://www.w3.org/TR/xpath/ Kontsultatu http://www.w3.org/TR/xpath/ Kontsultatu http://www.w3.org/TR/xmldsig-core/ TRANSFORM_C14N_EXCL_WITH_COMMENTS ITZULERA Sinatutako XML dokumentua. ADIBIDEA xml=” <root> <data1 id=’iddata1’>sample</data1> <data2>sample</data2> <signatures1 id=’idsignatures1’></signatures1> <signatures2></signatures2> </root> ” signed_xml=applet.signXAdESEnvelopedSelectNode (xml,”#iddata1”,”#idsignatures1”,” TRANSFORM_C14N_OMIT_COMMENTS“) signed_xml=applet.signXAdESEnvelopedSelectNode (xml,”//data2”,”//data2”,” TRANSFORM_C14N_OMIT_COMMENTS“) 1.5.19.2 signXAdESEnvelopedSelectNode XAdES formatuarekin sinatzeko aukera ematen du. Dei mota hau addInput/Sign() logikaz kanpo geratzen da, ez baitu leihorik bistaratzen egin beharreko sinadura baliozkotzeko. Sarrerako XML dokumentuaren zein nodo sinatuko diren eta sinadura zein posiziotan kokatuko den zehatz daiteke. DEIAREN FORMATUA TestuKatea signXAdESEnvelopedSelectNode(TestuKatea TestuKatea nodoAFirmar, TestuKatea nodoPosiciónFirma, mecanismoCannonicalización, String xmlEntradaEncoding) PARAMETROAK xmlEntrada: sinatu nahi den XML dokumentua. xmlEntrada, TestuKatea nodoAFirmar: sinatu nahi den nodoa; honakoa zehatz daiteke: edo dokumentuaren IDarekiko erreferentzia: adibidez #id edo nodoa identifikatzen duen xpath13 bat: adibidez //node. Nodo horrek identifikatzailerik ez badu, automatikoki gehituko da. nodoPosiciónFirma: sinadura txertatu nahi den nodoa; honakoa zehatz daiteke: edo dokumentuaren IDarekiko erreferentzia: adibidez #id edo nodoa identifikatzen duen xpath14 bat: adibidez //node. mecanismoCannonicalización: kanonikalizazioko15 transformaziorako erabili nahi den mekanismoa zehazten du. Balio hauetariko bat zehaztu behar da: TRANSFORM_C14N_OMIT_COMMENTS TRANSFORM_C14N_WITH_COMMENTS TRANSFORM_C14N_EXCL_OMIT_COMMENTS TRANSFORM_C14N_EXCL_WITH_COMMENTS xmlEntradaEncoding: Sarrerako XML dokumentuaren zehazten du. Balio hauetariko bat zehaztu behar da: ISO-8859-1 UTF-8 ITZULERA Sinatutako XML dokumentua. ADIBIDEA xml=” <root> <data1 id=’iddata1’>sample</data1> <data2>sample</data2> <signatures1 id=’idsignatures1’></signatures1> <signatures2></signatures2> </root> ” 13 14 15 Kontsultatu http://www.w3.org/TR/xpath/ Kontsultatu http://www.w3.org/TR/xpath/ Kontsultatu http://www.w3.org/TR/xmldsig-core/ encoding-a signed_xml=applet.signXAdESEnvelopedSelectNode (xml,”#iddata1”,”#idsignatures1”,” TRANSFORM_C14N_OMIT_COMMENTS“, “ISO-88591”) signed_xml=applet.signXAdESEnvelopedSelectNode (xml,”//data2”,”//data2”,” TRANSFORM_C14N_OMIT_COMMENTS“, ISO-8859-1) 1.5.19.3 signXAdESEnvelopedSelectNodeBase64 Base64-an kodetutako XML dokumentu bat XAdES formatuarekin sinatzeko aukera ematen du, eta sinadura ere base64-an lortzen da. Dei mota hau addInput/Sign() logikaz kanpo geratzen da, ez baitu leihorik bistaratzen egin beharreko sinadura baliozkotzeko. Sarrerako XML dokumentuaren zein nodo sinatuko diren eta sinadura zein posiziotan kokatuko den zehatz daiteke. DEIAREN FORMATUA TestuKatea signXAdESEnvelopedSelectNodeBase64(TestuKatea TestuKatea nodoAFirmar, TestuKatea nodoPosiciónFirma, mecanismoCannonicalización, String xmlEntradaEncoding) xmlEntrada, TestuKatea PARAMETROAK xmlEntrada: sinatu nahi den XML dokumentua, base64-an kodetua. nodoAFirmar: sinatu nahi den nodoa; honakoa zehatz daiteke: edo dokumentuaren IDarekiko erreferentzia: adibidez #id edo nodoa identifikatzen duen xpath16 bat: adibidez //node. Nodo horrek identifikatzailerik ez badu, automatikoki gehituko da. nodoPosiciónFirma: sinadura txertatu nahi den nodoa; honakoa zehatz daiteke: edo dokumentuaren IDarekiko erreferentzia: adibidez #id edo nodoa identifikatzen duen xpath17 bat: adibidez //node. 16 17 Kontsultatu http://www.w3.org/TR/xpath/ Kontsultatu http://www.w3.org/TR/xpath/ mecanismoCannonicalización: kanonikalizazioko18 transformaziorako erabili nahi den mekanismoa zehazten du. Balio hauetariko bat zehaztu behar da: TRANSFORM_C14N_OMIT_COMMENTS TRANSFORM_C14N_WITH_COMMENTS TRANSFORM_C14N_EXCL_OMIT_COMMENTS TRANSFORM_C14N_EXCL_WITH_COMMENTS xmlEntradaEncoding: Sarrerako XML dokumentuaren encoding-a zehazten du. Balio hauetariko bat zehaztu behar da: ISO-8859-1 UTF-8 ITZULERA Sinatutako XML dokumentua, base64-an kodetua. ADIBIDEA xml=”PHJvb3Q+DQo8ZGF0YTEgaWQ9ImlkZGF0YTEiPnNhbXBsZTwvZGF0YTE+DQo8ZGF0YTI+c2F tcGxlPC9kYXRhMj4NCjxzaWduYXR1cmVzMSBpZD0iaWRzaWduYXR1cmVzMSI+PC9zaWduYXR1c mVzMT4NCjxzaWduYXR1cmVzMj48L3NpZ25hdHVyZXMyPg0KPC9yb290Pg==” Hori base64-an kodetutako dokumentu honen baliokidea izango litzateke: <root> <data1 id=’iddata1’>sample</data1> <data2>sample</data2> <signatures1 id=’idsignatures1’></signatures1> <signatures2></signatures2> </root> signed_xml=applet.signXAdESEnvelopedSelectNodeBase64 (xml,”#iddata1”,”#idsignatures1”,” TRANSFORM_C14N_OMIT_COMMENTS“, “ISO-88591”) signed_xml=applet.signXAdESEnvelopedSelectNodeBase64 (xml,”//data2”,”//data2”,” TRANSFORM_C14N_OMIT_COMMENTS“, “ISO-8859-1”) 18 Kontsultatu http://www.w3.org/TR/xmldsig-core/ 1.5.19.4 createXAdESManifest Metodo honek aukera ematen du XAdES-en enveloping sinaduretarako manifest bat sortzeko, praktikan dettached motako sinadura bat lortzeko. DEIAREN FORMATUA TestuKatea createXAdESManifest(TestuKatea uri, TestuKatea digestMethodAlgorithm, TestuKatea digestValue) PARAMETROAK uri: erreferentziako dokumenturako URIa digestMethodAlgorithm: erabili beharreko digest algoritmoa digestValue: digest-aren balioa, base64-an ITZULERA Digest-ari dagokion XML dokumentua. ADIBIDEA applet.createXAdESManifest("data.bin", "http://www.w3.org/2000/09/xmldsig#sha1", "Au2KNhXNIfC7yePq5S0D6a0/DFw="); Emaitza hau izango du: <ds:Manifest Id=”Manifest1"> <ds:Reference URI="data.bin"> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <ds:DigestValue>Au2KNhXNIfC7yePq5S0D6a0/DFw=</ds:DigestValue> </ds:Reference> </ds:Manifest> 1.6 Web-orri batetik erabiltzea (Applet-a) APIa web-orri batetik erabiltzeko, entregatzen den Applet-a erabili behar da. Applet-aren API honetan honako datu mota hauek erabili behar dira: TestuKatea: String Osokoa: int Boolearra: bool Egiazkoa: true Faltsua: false Applet-a exekutatzen den bakoitzean aztarna-fitxategi bat sortzen du. Fitxategiaren kokapena honakoa da: $HOME/.idazki-trace.txt Linux/OSX sistemetan. %APPDATA%/.idazki-trace.txt Windows sistemetan. 1.6.1 Deklarazioa Applet-a web-orri batetik erabili ahal izateko honako kode hau zehaztu beharko dugu haren barruan: <html> <header <applet code="izenpe.app.applet.AppletApplication.class" archive="izenpesignerapplet.jar" name="applet"> </header> </applet> <body> … </body> </html> 1.6.2 Applet-arentzako metodo espezifikoak 1.6.2.1 promptFilesystem Fitxategi edo direktorio baten sarreraz/irteeraz galdetzen duen elkarrizketa-koadro bat erakusten du. DEIAREN FORMATUA String promptFilesystem(boolean semicolonSeparatedExtensionList) isInput, boolean isFolder, String PARAMETROAK 1. isInput: true sarrerakoa dela adierazteko, false irteerakoa dela adierazteko 2. isFolder: true direktorio bat dela adierazteko, false fitxategi bat dela adierazteko 3. semicolonSeparatedExtensionList: fitxategiaren gaineko eragiketa bat bada (isFolder==false), baimendutako luzapenen zerrenda zehatz daiteke, puntu eta komaz bereizita. Esate baterako “txt;doc”; ITZULERA Deiak arrakasta izan badu, hautatutako fitxategia/direktorioa; bestela, null. ADIBIDEA alert("Hautatu sarrerako PDF edo TXT"); alert(applet.promptFilesystem(true,false,"pdf;txt")); alert("Hautatu irteerako .xades fitxategi bat"); alert(applet.promptFilesystem(false,false,"xades")); alert(“Hautatu sarrerako karpeta bat”); alert(applet.promptFilesystem(true,true,null)); alert("Hautatu irteerako karpeta bat"); alert(applet.promptFilesystem(true,true,null)); 1.6.2.2 traceTime Eragiketa bat trazatzeko eta kronometrajeak egiteko aukera ematen du. DEIAREN FORMATUA void traceTime(String trace, String timer) PARAMETROAK 4. trace: aztarnaren testua 5. timer: timer-aren identifikatzailea ADIBIDEA Adibide honek denbora-aztarna bat egiten du: applet.traceTime("Aztarnaren hasiera",”timer1”; … applet.traceTime("Aztarnaren amaiera",”timer1”); 1.6.3 Kontsiderazio gehigarriak Applet-ek klase edo baliabide bat kargatu behar dutenean, JAR fitxategian aurkitzen ez badute, zerbitzarira jotzen dute kargatzen ahalegintzeko. Idazkiren kasuan beharrezko baliabide guztiak JAR fitxategian bertan daudenez, portaera hori desaktibatzea komeni da. Horretarako, honela erabili behar da codebase_lookup parametroa: <applet code="izenpe.app.applet.AppletApplication.class" archive="izenpesignerapplet.jar" name="applet"> <param name="codebase_lookup" value="false"/> </applet> 1.7 Windows aplikazio batetik DLLaren bitartez erabiltzea (dllwrapper) APIa aplikazio batetik erabiltzeko, kontuan izan behar da datu motetarako mapaketa hauek egiten direla: TestuKatea: QSTRING (char *) Osokoa: int Boolearra: int Egiazkoa: 1 Faltsua: 0 OHARRA: metodo guztiek idazki_ aurrizkia erabiltzen dute. OHAR garrantzitsua: itzulitako QSTRINGen memoria libratu behar da. Egindako eragiketen aztarnak sortu nahi badira, IDAZKI_WS_DLLWRAPPER_TRACEFILE ingurune-aldagaia zehatz daiteke aztarnak gordetzeko erabili nahi dugun fitxategiaren izenarekin. 1.7.1 Deklarazioa "Debug muthithreaded dll" bertsioa: idazki-ws-dllwrapper_debug.lib estekatzeko idazki-ws-dllwrapper_debug.dll "Release muthithreaded dll" bertsioa: idazki-ws-dllwrapper.lib estekatzeko idazki-ws-dllwrapper.dll Bestalde, idazki-ws-dllwrapper.h fitxategian metodoen eta DLLaren konstanteen deklarazioak daude. 1.7.2 DLL liburutegiarentzako metodo espezifikoak 1.7.2.1 idazkiws_forgetLastSessionAndCreateNewOne Lehendik web-zerbitzuan sortutako saio guztiak ixten ditu eta saio berri bat sortzen du. DEIAREN FORMATUA QBOOL idazki_forgetLastSessionAndCreateNewOne(); ITZULERA QTRUE baldin eta saio berri bat sortu ahal izan badu. QFALSE itzultzen badu, litekeena da zerbitzaria ez abiarazi izana. 1.7.2.2 idazkiws_serverStart IdazkiWS-ren barne-zerbitzaria abiarazten du. DEIAREN FORMATUA QBOOL idazkiws_serverStart(QSTRING serverPath); PARAMETROAK 6. serverPath: zerbitzaria instalatuta dagoen lekua ITZULERA QTRUE baldin eta errorerik ez badago 1.7.2.3 idazkiws_serverStop Lehenago idazkiws_serverStart aginduarekin abiarazitako zerbitzaria ixten du killAll QFALSE balioarekin zehazten bada. Baina killAll QTRUE balioarekin badago, orduan zerbitzaria itxi egingo du, idazkiws_serverStart aginduarekin abiarazi ez bada ere. DEIAREN FORMATUA QVOID idazkiws_serverStart(QSTRING serverPath, QBOOL killAll); PARAMETROAK 7. serverPath: zerbitzaria instalatuta dagoen lekua 8. killAll: zerbitzaria ixteko, idazki_serverStart aginduarekin abiarazi ez bada ere 1.8 Windows inguruneko aplikazio batetik SOAP bidez erabiltzea SOAP-EN ZUZENEKO ERABILERA ESPERIMENTALA DA, FUNTZIONALTASUNA EDOZEIN UNETAN ALDA DAITEZKE. EZ DAGO ONARTUA ETA METODOAK ETA APIa aplikazio batetik erabiltzeko, kontuan izan behar da datu motetarako mapaketa hauek egiten direla: TestuKatea: xsd:string Osokoa: xsd:int Boolearra: xsd:bool Egiazkoa: true Faltsua: false Metodo guztiek erantsitako lehen parametro bat dute: APIaren forgetLastSessionAndCreateNewOne dei espezifikoaren bidezko edozein eragiketa egiteko erabili behar den saio-identifikatzailea. OHARRA: zerbitzariak localhost-etik (127.0.0.1) datozen deiak besterik ez ditu onartzen. 1.8.1 Deklarazioa Zerbitzuen deklarazioa hemen dago erabilgarri: http://localhost:18080/axis2/services/idazki?wsdl 1.8.2 SOAP zerbitzurako metodo espezifikoak 1.8.2.1 forgetLastSessionAndCreateNewOne Lehendik web-zerbitzuan sortutako saio guztiak ixten ditu eta saio berri bat sortzen du. DEIAREN FORMATUA <wsdl:message name="forgetLastSessionAndCreateNewOneRequest"/> <wsdl:message name="forgetLastSessionAndCreateNewOneResponse"> <wsdl:part name="parameters" element="ns:forgetLastSessionAndCreateNewOneResponse"/> </wsdl:message> <wsdl:operation name="forgetLastSessionAndCreateNewOne"> <wsdl:input message="ns:forgetLastSessionAndCreateNewOneRequest" wsaw:Action="urn:forgetLastSessionAndCreateNewOne"/> <wsdl:output message="ns:forgetLastSessionAndCreateNewOneResponse" wsaw:Action="urn:forgetLastSessionAndCreateNewOneResponse"/> </wsdl:operation> ITZULERA Saio-identifikatzaile berria. APIaren adibideak 1.9 Applet-a/JavaScript 1.9.1 PDF dokumentu bat denbora-zigiluarekin sinatzea SarreraFitxategia = applet.promptFileSystem(“in?”,true,false); IrteeraFitxategia = applet.promptFileSystem(“out?”,false,false); applet.addInput(“file”, SarreraFitxategia, ”file”, IrteeraFitxategia); applet.setCryptoStoreAuto(); applet.sign(“pdf-timestamped”); 1.9.2 Karpeta bateko dokumentuak CAdES-C dettached moduan sinatzea eta edukia JavaScript bidez berreskuratzea applet.addInput(“folder”,"/in",”inline”,null); applet.signSetAdESLevel(“c”); applet.setCryptoStoreAuto(); applet.sign("cades-sign-dettached"); for (i=0;i<applet.getOutputContent();++i) { alert(“signed file=”+applet.getOutputReferenceFile(i,false)); alert(“signature=”+applet.getOutputContent(i,true)); } 1.9.3 Testu bat modu lokalean zifratzea erabiltzaileari pasahitza galdetuta applet.addInput(“inline-text”,"cipher-me!",”inline”,null); applet.cipher(“*gui”); ciphereddata = applet.getOutputContent(0,true); 1.9.4 TIES kodea berreskuratzea 19 alert("TIES-PUBLIC="+applet.getTies ()); 1.9.5 CMS attached bat sinatzea eta egiaztatzea applet.clearInputs(); applet.addInput("inline-text",”sinatutakodatuak”,"inline",null); applet.signSetAdESLevel("none"); applet.sign("cades-sign-attached"); var cms=applet.getOutputContent(0,true); applet.clearInputs(); applet.addInput("inline-binary",cms,"none",null); applet.verify("cms-verify-attached"); 1.9.6 CMS dettached bat sinatzea eta egiaztatzea applet.clearInputs(); applet.addInput("inline-text",”sinatutakodatuak”,"inline",null); applet.signSetAdESLevel("none"); applet.sign(“cades-sign-dettached”); var cms=applet.getOutputContent(0,true); applet.clearInputs(); applet.addInputWithAttachment("inline-binary",cms, "inline-text",”sinatutakodatuak”,"none",null,null); applet.verify("cms-verify-dettached"); 1.9.7 CAdES-BES dettached bat mankomunatuta sinatzea applet.clearInputs(); applet.addInput("inline-text",”sinatutakodatuak”,"inline",null); applet.signSetAdESLevel("bes"); applet.setCryptoStoreAuto(); 19 UNIX sistemetan dei honen bidez berreskura daiteke TIES kodea: pkcs11-tool --read-object -label 'TIES-PUB' --type data applet.sign("cades-sign-dettached"); var cades_1firma=applet.getOutputContent(0,true); applet.clearInputs(); applet.addInput("inline-binary", cades_1firma,"inline",null); applet.signSetAdESLevel("bes"); applet.setCryptoStoreAuto(); applet.sign("cades-cosign-dettached"); var cades_2firma=applet.getOutputContent(0,true); 1.9.8 XAdES-BES dettached sinadura kanpoko hash batetik abiatuta. Sartutako hash-a XML fitxategi batetik abiatuta kalkulatu da, eta, horrenbestez, kanonizazio-metodoa zehaztu behar da (hash-canonizexmlwithcomments). applet.clearInputs(); applet.setOption("signature-hashalgo","SHA-1"); applet.setOption("signature-dettached-ref-uri","original.xml"); applet.setOption("signature-dettached-ref-type","hash"); applet.setOption("hash-canonizexmlwithcomments","0"); applet.addInput("inline-hash", "VvPGEQaGWoHmPfH5E+LgP8MJvaU=", "inline", null ); applet.setOption("va-universal-ocsp-url", "http://ocspdes.izenpe.com:8094"); applet.setOption("timestamp-url", "http://ocspdes.izenpe.com:8093/"); applet.setCryptoStoreAuto(); applet.signSetAdESLevel("bes"); applet.sign("xades-sign-dettached"); var data_xml_signed=applet.getOutputContent(0,false); 1.9.9 XAdES-BES dettached sinadura kanpoko hash Sartutako hash-a fitxategi bitar batetik abiatuta kalkulatu da. applet.clearInputs(); applet.setOption("signature-hashalgo","SHA-1"); batetik abiatuta. applet.setOption("signature-dettached-ref-uri","original.xml"); applet.setOption("signature-dettached-ref-type","hash"); applet.addInput("inline-hash", "VvPGEQaGWoHmPfH5E+LgP8MJvaU=", "inline", null ); applet.setOption("va-universal-ocsp-url", "http://ocspdes.izenpe.com:8094"); applet.setOption("timestamp-url", "http://ocspdes.izenpe.com:8093/"); applet.setCryptoStoreAuto(); applet.signSetAdESLevel("bes"); applet.sign("xades-sign-dettached"); var data_xml_signed=applet.getOutputContent(0,false); 1.10 DLL (C++ lengoaian, DLLWrapper bidez) 1.10.1 WS zerbitzarian saio balioduna lortzea (eta zerbitzaria abiaraztea) Lehenengo eta behin saio berri bat sortzen ahaleginduko gara: QBOOL alive = idazkiws_forgetLastSessionAndCreateNewOne(); std::cout<< "server is " << (alive==QFALSE?"not running":"running") << std::endl; if (alive==QTRUE) return 0; Sortzerik izan ez badugu, seguruenik zerbitzaria abiarazi gabe egongo da eta, horrenbestez, abiarazten ahaleginduko gara (kasu honetan WS zerbitzaria C:\IDAZKI_SRV kokalekuan dago). std::cout<< "zerbitzaria abiarazten..." << std::endl; idazkiws_serverStart(“c:\\IDAZKI_SRV”); Saio berri batean sartzea lortzen ahaleginduko da (begizta beharrezkoa da, zerbitzaria abiarazten egon daiteke-eta). int tries = 50; while ((alive = idazkiws_forgetLastSessionAndCreateNewOne())==QFALSE && tries--) { Sleep(200); } if (alive==QFALSE) { std::cout << "Cannot start up server" << std::endl; getchar(); return -1; } return 0; 1.10.2 3 PDF batch moduan sinatzea eta, azkenik, azkenekoa denbora-zigiluarekin batera sinatzea idazkiws_clearInputs(); idazkiws_setOption(OPTION_PDF_SIGNATURE_LLX,"150"); idazkiws_setOption(OPTION_PDF_SIGNATURE_LLY,"150"); idazkiws_setOption(OPTION_PDF_SIGNATURE_URX,"250"); idazkiws_setOption(OPTION_PDF_SIGNATURE_URY,"250"); idazkiws_setOption(OPTION_PDF_SIGNATURE_PAGE,"1"); idazkiws_setOption(OPTION_PDF_SIGNATURE_IMAGE,"c:\\signature1.gif"); idazkiws_addInput(PARAM_ELEMENT_IN_FILE,"c:\\doc1.pdf", PARAM_ELEMENT_OUT_FILE,"doc1_s.pdf"); idazkiws_addInput(PARAM_ELEMENT_IN_FILE,"c:\\doc2.pdf", PARAM_ELEMENT_OUT_FILE,"doc2_s.pdf"); idazkiws_setCryptoStoreAuto() idazkiws_sign(PARAM_SIGN_PDF) idazkiws_clearInputs(); idazkiws_setOption(OPTION_PDF_SIGNATURE_LLX,"250"); idazkiws_setOption(OPTION_PDF_SIGNATURE_LLY,"150"); idazkiws_setOption(OPTION_PDF_SIGNATURE_URX,"350"); idazkiws_setOption(OPTION_PDF_SIGNATURE_URY,"250"); idazkiws_setOption(OPTION_PDF_SIGNATURE_IMAGE,"c:\\signature2.gif"); idazkiws_addInput(PARAM_ELEMENT_IN_FILE,"c:\\doc1_s.pdf", PARAM_ELEMENT_OUT_FILE,"doc1_s_s.pdf"); idazkiws_setCryptoStoreAuto() idazkiws_sign(PARAM_SIGN_PDF_TSA) Mahaigaineko aplikazioa 1.11 Instalatzea / desinstalatzea 1.11.1 OSX 1.11.1.1 Modu grafikoan instalatzea Aplikazioa OSX sisteman instalatzeko: 1. Aurkitu [email protected] fitxategia: 2. Egin klik bikoitza fitxategian fitxategi-sisteman muntatzeko. “IZENPE ID@ZKI” bolumen berri bat izan beharko duzu muntatuta: 3. Arrastatu ID@ZKI ikonoa aplikazioen karpetara. Aplikazioen karpetaren barruan exekutatu ahal izango duzu ID@ZKI. 1.11.1.2 Modu grafikoan desinstalatzea Aplikazioa desinstalatzeko, bidali ID@ZKI zakarrontzira. 1.11.1.3 Komando-lerroan instalatzea 1. Muntatu instalatzeko fitxategia sisteman komando hdid ID\@ZKI.dmg 2. Kopiatu aplikazioa agindu honen bidez: cp /Volumes/IZENPE ID\@ZKI/ID\@ZKI.app /Applications 3. Desmuntatu instalatzeko fitxategia agindu honen bidez: umount /Volumes/IZENPE ID\@ZKI 1.11.1.4 Komando-lerroan desinstalatzea Ezabatu aplikazioaren direktorioa agindu honen bidez: rm –rf /Applications/ID\@ZKI.app 1.11.2 Windows/Linux honen bidez: 1.11.2.1 Instalatzea Instalazioa helburuko plataformari dagokion fitxategiarekin egin beharko da: Microsoft Windows (XP eta Vista): bitar autoexekutagarria. Linux (OpenSuse, Ubuntu eta FedoraCore): jar fitxategi konprimitua, Java Virtual Machine-ren bidez abiarazi beharrekoa (JRE 1.6). Mac: jar fitxategi konprimitua, Java Virtual Machine-ren bidez abiarazi beharrekoa (JRE 1.6). Instalazioa egiteko sistema administratzeko pribilegioak dituen erabiltzaile bat erabili beharko da. Instalatzailea honela abiaraziko da: Microsoft Windows: exekutagarrian klik bikoitza egin Linux eta OSX: eskuin-botoia -> “Sun Java 6 Runtime-rekin ireki”20 1. Instalatzeko eta funtzionatzeko hizkuntza aukeratzeko pantaila. Idazki euskaraz eta gaztelaniaz instalatu ahal izango da. Goitibeherako menuaren bidez aukeratuko dugu hizkuntza. 2. 3. Ongietorri-paneletatik eta instalatzeko osagaiak aukeratzekoetatik igaroko da aplikazioa. Bertsio honetan (1.0) erabiltzaileak ezin izango du inongo aukerarik egin (osagai bakarra da). 20 OpenSuse 11.0 eta 11.1 bertsioetan, bug baten ondorioz, prozedura hori honela exekutatu behar da: Eskuin-botoia -> Erabili komando pertsonalizatua -> Idatzi “java –jar” (komatxorik gabe) -> Ireki. 4. Hurrengo panelean aplikazioa zein direktoriotan instalatu nahi dugun aukeratuko dugu (fitxategi-sisteman nabigatzeko aukera izango dugu, direktorioa aukeratzeko): 5. Hurrengo panelak instalazioaren bilakaeraren berri emango digu. 6. Panel horretan, zein plataformatan gauden, lasterbideak pertsonalizatzeko aukerak hautatuko ditugu. 7. Azken panelak instalazioa arrakastaz gauzatu den adieraziko digu. 1.11.2.2 Desinstalatzea Aplikazioa desinstalatzeko, sistema administratzeko pribilegioak izan beharko ditugu beti. Aplikazioak jar fitxategi bat utziko du (eta bertarako lasterbideak), Sun JVM-ren bidez exekutatu eta osagaia desinstalatuko duena: Instalazioan kopiatutako fitxategiak ezabatuko ditu. Instalazioan sortutako lasterbideak ezabatuko ditu. 1.12 Aplikazioa erregistratzeko prozedura 1.12.1 Erabiltzaileak eskaera bidaltzea Aplikazioa erregistratu egin behar da erabili ahal izateko. Aplikazioa instalatu ondoren, lehen aldiz hasten denean, honako leiho hau agertuko da: Erabiltzaileak Izenperi bidali beharko dio informazioa, sortutako erregistro-kodearekin batera. 1.12.2 Erabiltzailearentzako instalazio-kodea sortzea Banaketara joan beharko duzu eta eskuz abiarazi kodeak sortzeko tresna komando-lerroaren bidez: java -jar desktop-regtool.jar Hurrengo leihoa agertuko da. Idatzi erabiltzaileak emandako kodea, erregistro-izena eta lizentzia erabiltzeko mugaeguna. Sortutako kode guztiak cvs fitxategiari gehitzen zaizkio. Fitxategia Excel-ekin ireki daiteke aztertzeko. Sakatu Generar [Sortu] botoia. Sortutako kodea zuzenean itsats daiteke bezeroarentzako mezu elektroniko batean. Kodea $$$ karaktereen artean dago eta ez litzateke aldatu behar. Esate baterako, honela bidal dakioke mezu elektroniko bat bezeroari: Bezero agurgarria, zure kodea sortu da. Mesedez, kopiatu honako eduki hau erregistro-kodearen koadroan: MUGA EGUNA: 2020-01-01 HONEN IZENEAN ERREGISTRATUA: Juan Lopez Lopez =====================================$$$ 02-30312f30312f32303230-4a75616e204c6f70 657a204c6f70657a-41d75e74 $$$===================================== Adeitasunez, 1.12.3 Instalazio-kodea instalatzea Bezeroak, besterik gabe, eman dioten kodea txertatu behar du. Gogoan izan $$$ karaktereen artean ez dagoen guztia alde batera uzten dela. Beraz, beste edozein testu mota ez da kontuan hartuko. Kodea sartu eta Registrar [Erregistratu] botoia sakatu ondoren, aplikazioa berrabiarazteko eskatuko dio aplikazioak erabiltzaileari, modu normalean abiarazi ahal izateko. 1.13 Aplikazioaren erabilera 1.13.1 Fitxategi bat sinatzea Prozedura honek fitxategi bat sinatzeko aukera emango dizu. Dokumentua PDF motakoa bada, sinatutako PDF fitxategi bat sortuko da; dokumentua PDF motakoa ez bada, XAdES-BES fitxategi bat sortuko da. Zigilatzeko zerbitzaria erabilgarri dagoen ala ez, denbora-zigilua ere izan dezake. 1. Gailu kriptografiko batekin sinatu nahi baduzu, sartu orain. PKCS#12 gako-fitxategi batekin sinatu nahi baduzu, ordenagailuko gailu kriptografikoa kenduta izan beharko duzu. Windows bada, PKCS#12 hori gakoen biltegi pertsonalera inportatu beharko duzu. 2. Sakatu Firmar archivo [Sinatu fitxategia] botoia. 3. Sakatu Firmar archivo [Sinatu fitxategia] botoia. 4. (Aukerakoa) Denbora zigilatzeko zerbitzaria erabilgarri ez dagoela dioen leihoa agertzen bazaizu, ezin izango diozu denbora-zigilurik erantsi sinadura elektronikoari. Jarraitu nahi baduzu, sakatu Si [Bai]. 5. Erabili beharreko ziurtagiria hautatzeko eskatuko dizun leihoa agertuko da. Sakatu Ok hautatzeko edo Detalles [Xehetasunak] botoia hautatutako ziurtagiriaren xehetasunak ikusteko. 6. Hautatu sarrerako fitxategia. Sinatu beharreko fitxategiaren eta erabiliko den sinaduraziurtagiriaren informazioa bistaratuko da. Sakatu Aceptar [Ados] botoia jarraitzeko. 7. Hautatu sinatutako dokumentua nola gorde nahi duzun. 8. Beharrezkoa izanez gero, sartu gakoak babesteko pasahitza. 1.13.2 Sinadura egiaztatzea eta dokumentu kapsulatua ateratzea Oharra: erabili Adobe Acrobat Reader tresna sinatutako PDF dokumentuak egiaztatzeko. 1. Sakatu Verificar archivo [Egiaztatu fitxategia] botoia. 2. Hautatu sinadura egiaztatzeko. Mahaigaineko aplikazioaren bidez sinatutako fitxategiak besterik ezin dira egiaztatu (.signed-xades fitxategiak). 3. Sinaduraren informazioa bistaratuko duen leiho bat agertuko da: Dokumentua sinatu duen ziurtagiria. Denbora-zigilu segurua (baldin badago). Sinatu den jatorrizko dokumentua ateratzeko botoia. Sinatzeko erabiltzen den ziurtagiria baliozkotu ezin bada, NO SE PUEDE GARANTIZAR LA VALIDEZ DE LA FIRMA [EZIN DA SINADURAREN BALIODUNTASUNA BERMATU] mezua bistaratuko du sistemak. 1.13.3 Hainbat fitxategi sinatzea Prozedura honek hainbat fitxategi sinatzeko aukera emango dizu. Dokumentua PDF motakoa bada, sinatutako PDF fitxategi bat sortuko da; dokumentua PDF motakoa ez bada, XAdES-BES fitxategi bat sortuko da. Zigilatzeko zerbitzaria erabilgarri dagoen ala ez, denbora-zigilua ere izan dezake. 1. Gailu kriptografiko batekin sinatu nahi baduzu, sartu orain. PKCS#12 gako-fitxategi batekin sinatu nahi baduzu, ordenagailuko gailu kriptografikoa kenduta izan beharko duzu. Windows bada, PKCS#12 hori gakoen biltegi pertsonalera inportatu beharko duzu. 2. Sortu karpeta bat sinatu nahi dituzun fitxategi guztiekin. Prestatu sinatutako fitxategiak gordetzeko beste karpeta bat. 3. Sakatu Firmar carpeta [Sinatu karpeta] botoia. 4. (Aukerakoa) Denbora zigilatzeko zerbitzaria erabilgarri ez dagoela dioen leihoa agertzen bazaizu, ezin izango diozu denbora-zigilurik erantsi sinadura elektronikoari. Jarraitu nahi baduzu, sakatu Si [Bai]. 5. Erabili beharreko ziurtagiria hautatzeko eskatuko dizun leihoa agertuko da. Sakatu Ok hautatzeko edo Detalles [Xehetasunak] botoia hautatutako ziurtagiriaren xehetasunak ikusteko. 6. Hautatu sinatzeko dokumentuak zein direktoriotan gorde dituzun. 7. Hautatu sinatutako dokumentuak zein direktoriotan gordeko dituzun. 8. Sinatuko diren fitxategien eta erabiliko den sinadura-ziurtagiriaren informazioa bistaratuko da. Sakatu Aceptar [Ados] botoia jarraitzeko. 9. Beharrezkoa izanez gero, sartu gakoak babesteko pasahitza. 1.13.4 Fitxategiak zifratzea/deszifratzea OHARRA: Prozedura hau itzulezina izan daiteke pasahitza galtzen baduzu. Prozedura hau desaktibatuta egon daiteke konfigurazioz. Kontsultatu sistemen administratzailearekin, aktibatuta ez badago aktibatzeko. Prozedura honek fitxategi bat zifratu edo deszifratzen du erabiltzaileak emandako gakotik abiatuta. Zifratutako fitxategiek jatorrizko fitxategiaren izena izango dute, eta “.cipher” atzizkia. “.cipher” fitxategiak ezin dira berriz zifratu, sistemak zifratuta dauden fitxategi gisa ezagutzen baititu eta automatikoki aplikatzen baitizkie deszifratzeko eragiketak. Fitxategi bat zifratzeko 1. Hautatu Cifrar/Descrifrar archivo [Zifratu/Deszifratu fitxategia]. 2. Hautatu zifratu beharreko fitxategia (ezin du izan .cipher luzapena). 3. Idatzi zifratzeko pasahitza. 4. Zifratu beharreko fitxategiaren direktorio berean automatikoki sortuko da izen bera baina .cipher luzapena duen fitxategi bat. Horixe da zifratutako fitxategia. Fitxategi bat deszifratzeko 1. Hautatu Cifrar/Descrifrar archivo [Zifratu/Deszifratu fitxategia]. 2. Hautatu deszifratu beharreko fitxategia (.cipher luzapena izan behar du). 3. Idatzi deszifratzeko pasahitza. 4. Zifratutako fitxategiaren direktorio berean automatikoki sortuko da izen bera baina .cipher luzapena ez duen fitxategi bat. Horixe da deszifratutako fitxategia. 1.14 Alderdi teknikoak 1.14.1 Aztarna-fitxategia Mahaigaineko aplikazioa exekutatzen den bakoitzean aztarna-fitxategi bat sortzen du. Fitxategiaren kokapena honakoa da: $HOME/.idazki-trace.txt Linux/OSX sistemetan. %APPDATA%/.idazki-trace.txt Windows sistemetan. 1.14.2 Propietateen fitxategia Mahaigaineko aplikazioak propietateen fitxategi bat irakurtzen du hasieran. Propietate horiek aplikazioaren portaera pertsonalizatzeko aukera ematen dute. Fitxategiaren kokapena honakoa da: $HOME/.idazki.properties Linux/OSX sistemetan. %APPDATA%/.idazki.properties Windows sistemetan. Honakoak dira propietate horiek: Key Value initLanguage iscipherActivated p11list proxy helpURLes helpURLeu CINS CPWDINS Aplikazioaren hizkuntza: 0=Gaztelania 1=Euskara 1, zifratzeko aukera aktibatuta badago; bestela, 0 PKCS#11 gailu kriptografikoen zerrenda, puntu eta koma bidez bereizia Ikus Id@zki-ren APUrako setOption deian erabilgarri dauden aukerak Gaztelaniazko laguntzaren URLa Euskarazko laguntzaren URLa Instalazio-kodea Instalazio-pasahitza Aldaketen kontrola v1.0 Hasierako bertsioa. v1.0.1 CMS/CAdES kontrasinadura kendu da. v1.1 CMS sinadura egiaztatzea gehitu da. v1.2 Dokumentuaren itxura orokorra aldatu da. setOptions parametroak gehitu dira. CMS paraleloko multisinadura gehitu da. v1.3 Sinadura –N orrialdean jartzeko aukera gehitu da. Applet-erako PDFrako sinadura grafikoaren aukera gehitu da. Errorearen mnemonikoak eguneratu dira. Desktop osagaian sinadura egiaztatzeko eta dokumentua ateratzeko ahalmena gehitu da. Erregistro-kodearen funtzionaltasuna gehitu da Desktop aplikaziorako eta erregistrokodeak sortzeko aplikaziorako. v1.3.1 Windows 7-rako eta Snow Leopard-erako (10.6) euskarria gehitu da. v1.4 getFileInfo funtzionaltasuna gehitu da. Sinadura-formatu berriaren funtzionaltasuna gehitu da: cades-cosign-dettached. Sinatzeko mekanismo berriaren funtzionaltasuna gehitu signXadesEnvelopingSelectnode. XAdES enveloped sinatzeko mekanismoa eguneratu da. createXAdESManifest gehitu da. da: v1.4.1 createXadESManifest metodoa hobetu da. v1.4.8 signXAdESEnvelopedSelectNodeBase64 funtzionaltasuna gehitu da. v1.5.1 XL profilerako XAdES sinadura gehitu da. Hash batetik abiatutako XAdES dettached sinaduraren funtzionaltasuna gehitu da. v1.5.4 Oharra PINa behar ez bezala sartzen denean Orain arte errore generikoa ematen zen eta txartela blokeatu egin zezakeen, ez baitzion erabiltzaileari adierazten errorea zenbaterainokoa zen. Izenpe sinadura lehenetsiaren politika Sinadura lehenetsiaren politika gisa, Izenperi dagokiona gehitu da. Horrela, erabiltzaileak dagozkion balioak izango ditu hura aktibatze hutsarekin. applet.setOption("ades-add-policy","1"); Propietate hauek sortuko dira: o XAdES sinaduretarako setProperty(XADES_SIGNATURE_POLICY_ID_IDENTIFIER, "urn:izenpe:policies:politicaExt:default"); setProperty(XADES_SIGNATURE_POLICY_ID_DESCRIPTION, 1.5"); "Izenpe sinadura-politika setProperty(XADES_SIGNATURE_POLICY_HASH, "MeyJB7Su/xRvuxbZPiqjk8c5PnFPhr3XKyqlql+48CI="); setProperty(XADES_SIGNATURE_POLICY_HASHALGO, "SHA-256"); setProperty(XADES_SIGNATURE_POLICY_QUALIFIER_URI, "http://www.izenpe.com/s1512020/es/contenidos/informacion/descarga_certificados/es_pf/adjuntos/politica _firma_izenpe_v1_5.pdf"); o Eta CAdES sinaduretarako setProperty(CADES_SIGNATURE_POLICY_OID, "1.3.6.1.4.1.14777"); .setProperty(CADES_SIGNATURE_POLICY_HASH, "MeyJB7Su/xRvuxbZPiqjk8c5PnFPhr3XKyqlql+48CI="); setProperty(CADES_SIGNATURE_POLICY_HASHALGO, "SHA-256"); MAC liburutegien zerrendari PKCS11 Bit4Id liburutegiak gehitzea /System/Library/Izenpe/pkcs11/libbit4ipki.dylib MACen txartel kriptografikoa detektatzeko arazoak konpontzea Windows PKCS11 liburutegietan aldaketak egitea haien kokapenerako bide‐izen absolutuak eraman ditzaten PKCS11 Bit4Id liburutegiarekin PINa behin baino gehiago ez eskatzeko aldaketa Windows-en output ‘file’ motako XAdES sinadurak sortzean fitxategiaren encoding-a zuzentzea v1.5.5 Ziurtagiriaren ezeztatze-egoera egiaztatzea desgaitzeko parametroa Parametro berri bat gehitu da, ziurtagiri sinatzailearen ezeztatze-egoera egiaztatzen duen OCSP deia desgaitzeko aukera ematen duena. applet.setOption("dlgcertsel-enableocsp ","0"); Erabiltzaile-interfazearen itxura zuzentzea (look and feel) Applet-aren erabiltzaile-interfazeak itxura jakin bat zuen lehen aldiz sinatzen zenean, baina nabigatzailea freskatzean edo hainbat sinadura egitean itxura aldatu egiten zen. Portaera hori zuzendu egin da, itxura beti hasierakoa izan dadin. v1.5.6 PKCS11 bidez kargatzean PINaren eskaera zuzendu da Orain arte PKCS11 bidezko kargetan PINa eskatzeko elkarrizketa bistaratzen zen sinadura bakoitzean, are txartelaren middelware-ak behar ez zuenean ere. Portaera hori zuzendu egin da, middelware-ak eskatzen duenean soilik eska dadin PINa. PKCS11 bidez kargatzean “txartela blokeatuta” errorea bistaratzea Orain, PKCS11 bidez kargatzen saiatzean, erabiltzaile-interfazean txartela blokeatuta dagoen adierazten da, eta applet-ak errore-kode hau itzultzen du: ERR_PIN_LOCKED v1.5.7 Sinadurari OCSP ziurtagirien baliozkotzeak gehitu zaizkio Ziurtagiri sinatzailearen eta denbora zigilatzearen baliozkotzean esku hartzen duten OCSP ziurtagiri guztien baliozkotzea gehitu zaio sinadurari. Horrela, IZENPEn gauzatzen ari den azpiegitura-aldaketaren ondoren, ZAINek behar bezala baliozkotzen ditu sinadurak azpiegitura berri horren gainean. v1.5.8 Encoding-a zuzendu da zifratzeko eta deszifratzeko metodoetan Orain bi metodoek (cipher eta decipher) UTF-8 encoding-a erabiltzen dute applet-aren sarrerako/irteerako parametroak testu motakoak (inline-text) direnean. v1.5.9 NANe erabiltzeko Izenperen driver-aren euskarria Erabiltzaileak bide-izen hauetan instalatu behar du NANe-aren driver-a, applet-ak behar bezala detekta dezan: "/usr/lib/dniepkcs11.so" (unix 32) "/usr/lib64/dniepkcs11.so" (unix 64) v1.6.1 XAdES enveloping sinaduretan nodo espezifiko bat sinatzeko aukera Applet-ean bi propietate berri gehitu dira ezaugarri hori kudeatzeko: “xades-node-to-signname” nodo jakin bat zehazteko. “xades-node-to-sign-root” erroko nodoa edo nodo edukitzaile bat txandakatzeko (ds:Object). v1.6.2 Java 7 update 21 eta berriagoetan kode ez-fidagarriaren abisua saihestea Javaren azken bertsioetan kode ez-fidagarriaz ohartarazteko elkarrizketa agertzen zen. Aldaketa bat egin da Idazkin elkarrizketa hori ager ez dadin. v1.6.3 – Oracle-ren RIAetara egokitzea Java 7 update 51-rako (1.7.2-z berbera da, baina zylk.net-ek sinatua) behar diren baimen-propietateak sartu dira. Hainbat propietate gehitu dira MANIFESTean, RIAetarako (Rich Internet Application Internet Aplikazio Aberastuak) ezarritako eskakizunak betetzeko. New security requierements for RIAs. v1.7.0 – BiscayTIK adarkatzea Emaitzazko applet-aren tamaina murriztu egin da, proguard-en konfigurazioaren optimizazioaren bidez. Birfaktorizazioa. Mendeko liburutegiak detektatu dira eta automatizazio-prozesu bat sortu da haien gainean adabakiak egiteko. Modu asinkronoko metodoak, interfazea blokeatzea saihesteko. #setCryptoStoreAuto eta #sign-ek orain beste 2 parametro jasotzen dituzte succes/error callback-etik (arrakasta/errorea atzeradeia). v1.7.0 [w] – BiscayTIK adarkatzea Wrapped bertsioa. Java-ren gainean instalatutako beste liburutegi batzuekiko gatazkak saihesteko bertsioa. v1.7.1 – Branch Merge (adar-konbinazioa) Adar-konbinazioa: 1.7.0.w eta 1.6.2 v1.7.2 – Oracle-ren RIAetara egokitzea Java 7 update 51-rako (1.7.2-z berbera da, baina zylk.net-ek sinatua) behar diren baimen-propietateak sartu dira. Hainbat propietate gehitu dira MANIFESTean, RIAetarako (Rich Internet Application Internet Aplikazio Aberastuak) ezarritako eskakizunak betetzeko. New security requierements for RIAs. v1.7.3 – CAdES Test Proguard-en optimizazioa ezabatu da CAdES testa funtzionala izan dadin.
© Copyright 2024