id@zki desktop + izenperen applet-a - izenpe.euskadi.net · 1.3.1 applet-ean eta mahaigaineko...

63
Id@zki desktop + Izenperen applet-a

Upload: dinhtruc

Post on 29-Aug-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Id@zki desktop + Izenperen applet-a

EDUKIEN AURKIBIDEA

GARAPENAREN DESKRIBAPENA ........................................................................................... 3

1.1 Garatutako osagaiak ............................................................................................................ 3

1.2 Erabilitako liburutegien lizentzia .......................................................................................... 3

1.3 Funtzionaltasun nagusia....................................................................................................... 3

Instalatzeko eskakizunak ............................................................................................................... 8

SINADURA LOKALERAKO API-A ............................................................................................ 9

1.4 ID@ZKI skin edo gaiak ........................................................................................................ 10

1.5 API ID@ZKIren metodo komunak ...................................................................................... 11

1.6 Web-orri batetik erabiltzea (Applet-a) ............................................................................... 29

1.7 Windows aplikazio batetik DLLaren bitartez erabiltzea (dllwrapper) ................................ 32

1.8 Windows inguruneko aplikazio batetik SOAP bidez erabiltzea .......................................... 35

API-AREN ADIBIDEAK ......................................................................................................... 37

1.9 Applet-a/JavaScript ............................................................................................................ 37

1.10 DLL (C++ lengoaian, DLLWrapper bidez) .......................................................................... 41

MAHAIGAINEKO APLIKAZIOA ............................................................................................. 43

1.11 Instalatzea / desinstalatzea .............................................................................................. 43

1.12 Aplikazioa erregistratzeko prozedura .............................................................................. 48

1.13 Aplikazioaren erabilera .................................................................................................... 51

1.14 Alderdi teknikoak ............................................................................................................. 57

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 5.5.2

Bouncycastle 1.48-jdk15on: MIT X11 License.

Apache XMLSEC 1.3.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 mahaigaineko aplikazioan onartutako sistema eragileak /

nabigatzaileak

Nabigatzaileen / sistema eragileen konbinazio hauek onartzen dira:

IE6 IE7 IE8/9 FF3+ SAF

W2000 CSTORE WXP CSTORE CSTORE CSTORE CSTORE WV32 CSTORE CSTORE CSTORE WV64 CSTORE CSTORE W7 CSTORE CSTORE

UBU804 P11/P12 OSUSE10 P11/P12 FEDCOR9 P11/P12 FEDCOR11 P11/P12

OSX106INT P11/P12 OSX105INT P11/P12 OSX104INT 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 Facturae (EPES-BES)

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 Ez da babestutako PDFrik onartzen, ezta XFA inprimakiak dituen PDFrik ere.

4 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.

Applet-aren bertsioa

1.0 1.0.1 1.1 1.2 1.3 1.3.1 1.4 1.4.1 1.4.8 1.5.1+ 1.7.5+ 1.7.8

XAdES-BES

XAdES-EPES

XAdES-T

XAdES-C

XAdES-X

XAdES-XL

XAdES-A

XAdES-Enveloped

XAdES-Enveloping

XAdES-Detached

Facturae

CAdES-BES

CAdES-EPES

CAdES-T

CAdES-C

CAdES-X

CAdES-XL

CAdES-A

CAdES-Atached

CAdES-Detached

PDF

PDF denbora-

zigiluarekin

PadES-BES

PadES-T

1.3.4 Onartutako gailuak

Windows

Txartela Mota Oharrak

CAPI CAPI Modu lehenetsian sistema hau erabiltzen da. Beraz,

CAPIrekin integratzen diren txartel guztiak onartzen dira.

NANe pkcs11 c:\\windows\\system32\\UsrPkcs11.dll;

Izenpe pkcs11 c:\\windows\\system32\\aetpkss1.dll

Izenpe pkcs11 c:\\windows\\system32\\bit4ipki.dll

FNMT pkcs11 c:\\windows\\system32\\FNMT_P11.dll

c:\\windows\\system32\\FNMT_P11_x64.dll

Linux

Txartela Mota Oharrak

NANe (Izenperen

driver-a)

pkcs11 /usr/lib/dniepkcs11.so

/usr/lib64/dniepkcs11.so

Izenpe pkcs11 /usr/lib/libbit4ipki.so

/usr/lib64/libbit4ipki.so

Opensc pkcs11 /usr/lib/opensc-pkcs11.so

FNMT pkcs11 /usr/lib/libpkcs11‐fnmtdnie.so

/usr/lib64/libpkcs11‐fnmtdnie.so

Mac

Txartela Mota Oharrak

Izenpe pkcs11 /System/Library/Izenpe/pkcs11/libbit4ipki.dylib

Opensc pkcs11 /Library/OpenSC/lib/opensc-pkcs11.so

FNMT pkcs11 /Library/Libpkcs11‐fnmtdnie/lib/libpkcs11‐fnmtdnie.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 Fedora-ren kasuan, $JAVA_HOME barruan ‘bin’ karpetan dagoen ControlPanel izeneko exekutagarri bat

da.

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:

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.

AXIS2

WS zerbitzaria

SINADURA LOKALEKO SOAP

(https://127.0.1.18080)

+ IZENPELIB

DLL

JAVA 1.6 espezifikoa JAVA 1.6 SO

Applet-a

(IZENPELIB)

Nabigatzailea

WEBAPPS

WINAPPS

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 Okerreko PINa. Hiru saio jarraian eginez gero txartela

blokeatu egingo da. ERR_PIN_LOCKED Txartela blokeatuta dago. ERR_BADPASSWORDORCORRUPTFILE Pasahitza ez da zuzena edo fitxategia hondatuta

dago. ERR_CANNOTOPENFILE_FILENAME Ezin izan da fitxategi bat ireki. ERR_CANCELEDBYUSER Erabiltzaileak ezeztatu egin du eragiketa. ERR_CANNOTUSEPKCS12_FILENAME Ezin izan da PKCS#12 bat ireki. ERR_CANNOTUSEPKCS11_FILENAME Ezin izan da PKCS#11 bat erabili. ERR_CANNOTUSESYSTEMCRYPTOSTORE Ezin izan da Windows-en biltegi kriptografikoa erabili. ERR_INVALIDPARAMETERS_PARAMETERS Parametro baliogabeak pasatu zaizkio dei bati. ERR_INVALIDADESLEVEL_PARAMETERS AdES maila bat gaizki zehaztu da. ERR_INVALIDSIGNATUREOPERATION_PARAMETERS Parametro baliogabeak pasatu zaizkio sinadura-dei

bati. ERR_CANNOTCREATESIGNATURE Ezin izan da sinadura sortu. ERR_CANNOTCIPHERDOCUMENT Ezin izan da dokumentu bat zifratu. ERR_CANNOTDECIPHERDOCUMENT Ezin izan da dokumentu bat deszifratu. ERR_NOCERTIFICATESFORSIGN Ez da sinatzeko ziurtagiririk aurkitu. ERR_SHOULDINSTALLJREPOLICYFILES Sun JCE instalatu gabe daude. ERR_PASSWORDSDOESNOTMATCH Huts egin du pasahitza egiaztatzeak. ERR_BROWSERNOTFOUNDGOTOPAGE_URL Ezin izan da web-nabigatzaile bat ireki. ERR_BADPASSWORDORCORRUPTFILE Ezin izan da fitxategi bat deszifratu, pasahitza

okerrekoa zelako edo fitxategia hondatuta zegoelako. ERR_CANNOTRETRIEVETIESPUBLIC Ezin izan da TIES kodea berreskuratu. ERR_INTERNALERROR Barne-errore bat gertatu da. ERR_SELECTEDCERTIFICATEISREVOKED Hautatutako ziurtagiria ezeztatuta dago. ERR_CANNOTCREATETIMETSAMP Ezin izan da denbora-zigilu bat sortu. ERR_CANNOTSIGNPROTECTEDPDF Ezin da babestutako PDF bat sinatu. ERR_CANNOTLOADCONFIG Ezin izan da konfigurazioa irakurri. ERR_CANNOTFINDTIESCARD Ezin izan da TIES kodea berreskuratu. ERR_INVALIDVERIFYOPERATION_PARAMETERS Sinadura egiaztatzeko eragiketarako parametro

baliogabeak. ERR_CANNOTVERIFYDOCUMENT Ezin izan da dokumentu baten sinadura egiaztatu.

ERR_NOFILESSELECTED Ez da fitxategirik hautatu. ERR_INVALIDVERIFYOPERATION_PARAMETERS Errorea sinadura egiaztatzeko dei-parametroetan.

1.5.2 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 lehenetsiak honako hauetarako driver-ak

kontuan hartzen ditu:

NANe

FNMT

Izenpe

OpenSC (linux) 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 ades-add-policy

6 “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 xades-node-to-sign-name Sinatu beharreko nodoaren IDa. Enveloping sinaduretarako

bakarrik balio du. Enveloped sinaduretarako helburu bera

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.

duen metodo espezifiko bat dago

(signXAdESEnvelopedSelectNode). xades-node-to-sign-root ‘true’ enveloping sinaduretan dokumentuaren erroko

nodoa bera sinatzeko; bestela, nodo edukitzaile bat

sinatzen da (ds:Object). Aukera hau erabiltzeko behar-

beharrezkoa 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-signature-policy-oid CAdES sinaduretarako politikaren OIDa cades-signature-policy-hash CAdES sinaduretarako EPES politikaren hash-a cades-signature-policy-hashalgo CAdES sinaduretarako politikaren hash algoritmoa pdf-signature-llx PDF sinadura bistaratzeko X0 posizioa pdf-signature-lly PDF sinadura bistaratzeko Y0 posizioa pdf-signature-urx PDF sinadura bistaratzeko X1 posizioa pdf-signature-ury PDF sinadura bistaratzeko Y1 posizioa pdf-signature-page PDF sinaduraren orrialdea, … -2=azken-hirugarrena, -

1=azken-aurrena, 0=azkena, 1=lehena, 2=bigarrena… pdf-signature-reason PDF sinaduraren arrazoia pdf-signature-location Sinaduraren lekua pdf-signature-image 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. va-universal-ocsp-url Ziurtagiri mota guztientzako OCSP baliozkotzailearen URLa lang Hizkuntza ( ‘0’ gaztelaniaz, ‘1’ euskaraz) dlgcertsel-certfilter Ziurtagiriak hautatzeko elkarrizketa-koadrotik hautatu ahal

izango diren ziurtagirien zerrendarako iragazkia zehazten

du. Onartutako politiken zerrendaren bidez zehatz daiteke,

“policy=oid,oid,…” katearen bitartez7, edo bestela,

ziurtagiri jakin batzuk zehaztu 'fingerprint sha-1'en bidez,

“sha1thumb=thumb1,thumb2,…” katearen bitartez8.

dlgcertsel-selectfirst Balioa "1" bada, sinatzeko ziurtagiri bat besterik ez badago,

automatikoki hautatuko du, ziurtagiria hautatzeko leihoa

bistaratu gabe. dlgcertsel-checkocsp Sinatzeko prozesurako hautatutako ziurtagiriaren

ezeztatze-egoera egiaztatzeko ezintasunaren abisua ez du

bistaratzen. dlgcertsel-enableocsp Ziurtagiri sinatzailearen ezeztatze-egoera egiaztatzea

desgaitzeko aukera ematen du. Balioa ‘0’ bada, ez da OCSP

deia egiten. Aitzitik, balioa ‘1’ bada (balio lehenetsia), deia

egiten da. dlgsign-show Balioa "1" ez bada, ez du ez ziurtagiriari ez sinatu

beharreko elementuei buruzko informaziorik bistaratzen. proxy Proxy-a erabili nahi den zehazten du. Zehaztu

<server>:<port> edo

7 Esate baterako “policy=1.3.6.1.4.1.14777.104.3, 1.3.6.1.4.1.14777.104.4”

8 Esate baterako “sha1thumb=782f84c6270ab21166c3d797140d495b7245f0a8”

<server>:<port>:<usr>:<passwd> autentifikazioa

erabili nahi baduzu. Kate huts batek zehazten du ez duzula

proxy-rik erabili nahi. signature-dettached-ref-uri Sinatu beharreko dokumentuaren URIa zehazten du xades

dettached sinaduretan. signature-dettached-ref-type Sinatu beharreko dokumentu mota zehazten du xades

dettached sinaduretan. hash-canonizexmlwithcomments “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.

1.5.3 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 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.6 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, eta, erantzuna baiezkoa bada, direktorio-nabigatzaile bat

ateratzen da hautatzeko.

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.7 addInput

Sinatzeko, attached sinadurak egiaztatzeko, zifratzeko edo hash-a kalkulatzeko osagai bat

gehitzen du.

DEIAREN FORMATUA

Boolearra addInput(TestuKatea intype, TestuKatea in, TestuKatea

outtype, TestuKatea out)

PARAMETROAK

intype: sarrera mota

in: sarrera

outtype: irteera mota

out: irteera

Honako sarrera mota (intype) hauek onartzen dira:

Mota

file 'in' parametroak fitxategi baten izena eduki behar du folder 'in' parametroak direktorio baten izena eduki behar du inline-hash 'in' parametroak hash baten base64 kodifikazioa eduki behar du inline-binary 'in' parametroak eduki bitar baten base64 kodifikazioa eduki behar du inline-text 'in' parametroak testu-eduki bat eduki behar du

Honako irteera mota (outtype) hauek onartzen dira:

Mota

file 'out' parametroak fitxategi baten izena eduki behar du folder 'out' parametroak direktorio baten izena eduki behar du inline 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.8 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 'in' parametroak fitxategi baten izena eduki behar du inline-binary 'in' parametroak eduki bitar baten base64 kodifikazioa eduki behar du inline-text 'in' parametroak testu-eduki bat eduki behar du

Dettached edukiaren (inattachmenttype) honako sarrera mota hauek onartzen dira:

Mota

file 'in' parametroak fitxategi baten izena eduki behar du inline-binary 'in' parametroak eduki bitar baten base64 kodifikazioa eduki behar du inline-text 'in' parametroak testu-eduki bat eduki behar du

1.5.9 clearInputs

addInput(…) metodoaren bidez zehaztutako sarrera guztiak ezabatzen ditu.

DEIAREN FORMATUA

clearInputs()

1.5.10 getOutputCount

getOutputContent(…) metodoaren bidez berreskura daitezkeen sarreren kopurua.

DEIAREN FORMATUA

Osokoa getOutputCount()

ITZULERA

Sarrera kopurua.

1.5.11 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.12 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.13 sign

Sinadura elektronikoa aplikatzen die addInput(…) metodoaren bidez gehitutako elementuei.

DEIAREN FORMATUA

Boolearra sign(TestuKatea type)

PARAMETROAK

type: sinadura mota

Type

cades-sign-attached CMS/CAdES attached sinadura

cades-cosign-attached CMS/CAdES attached bati sinadura paraleloa gehitu

cades-sign-dettached CMS/CAdES dettached sinadura

cades-cosign-dettached CAdES dettached sinadura bati sinadura paraleloa gehitu

xades-sign-dettached XMLDSig/XAdES dettached sinadura

xades-sign-enveloping XMLDSig/XAdES enveloping sinadura

xades-cosign-enveloped9 Enveloped moduko XMLDSig/XAdES bati sinadura paraleloa

sortu/gehitu

pdf PDF sinadura

pdf-timestamped PDF sinadura denbora-zigiluarekin

pades PAdES-B

pades-timestamped PAdES-T

facturae Facturae motako XMLen sinadura.

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 sign(TestuKatea type, String sucessCallback, String

errorCallback)

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.14 verify

Attached sinaduren kasuan addInput(…) metodoaren bidez eta dettached sinaduren kasuan

addinputWithAttachement(..) metodoaren bidez zehaztutako dokumentuen sinadura

egiaztatzen du.

9 <Manifest> bat sinatzen baduzu, http://www.w3.org/2000/09/xmldsig#Manifest motako sinadura bat

sortuko du sistemak

DEIAREN FORMATUA

Boolearra verify(TestuKatea type)

PARAMETROAK

type: egiaztatu beharreko sinadura mota

Type

cms-verify-attached CMS attached sinadura

cms-verify-dettached CMS dettached sinadura

ITZULERA

Egiazkoa baldin eta deiak arrakasta izan badu.

1.5.15 signSetAdESLevel

CAdES/XAdES-erako sinadura-maila ezartzen du.

DEIAREN FORMATUA

Boolearra signSetAdESLevel(TestuKatea level)

PARAMETROAK

level: sinadura-maila

Type

none CMS/XMLDSig

bes CAdES-BES/XAdES-BES

t CAdES-T/XAdES-T

c CAdES-C/XAdES-C

xl XAdES-XL

ITZULERA

Egiazkoa baldin eta deiak arrakasta izan badu.

1.5.16 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

password: zifratze-pasahitza edo, bestela, “*gui”, erabiltzaileari interfaze

grafikoaren bidez galdetu behar zaiola adierazteko.

ITZULERA

Egiazkoa baldin eta deiak arrakasta izan badu.

1.5.17 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.18 hash

addInput(…) metodoaren bidez gehitutako elementuen hash-a kalkulatzen du.

DEIAREN FORMATUA

Boolearra hash()

ITZULERA

Egiazkoa baldin eta deiak arrakasta izan badu.

1.5.19 getTies

Txartelaren TIES kode publikoa berreskuratzen du.

DEIAREN FORMATUA

TestuKatea getTies ()

ITZULERA

Deiak arrakasta izan badu TIES kodea, bestela null.

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 xmlEntrada,

TestuKatea nodoAFirmar, TestuKatea nodoPosiciónFirma, TestuKatea

mecanismoCannonicalización)

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.

10

Kontsultatu http://www.w3.org/TR/xpath/

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

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.

11

Kontsultatu http://www.w3.org/TR/xpath/ 12

Kontsultatu http://www.w3.org/TR/xmldsig-core/

DEIAREN FORMATUA

TestuKatea signXAdESEnvelopedSelectNode(TestuKatea xmlEntrada,

TestuKatea nodoAFirmar, TestuKatea nodoPosiciónFirma, TestuKatea

mecanismoCannonicalización, String xmlEntradaEncoding)

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 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 encoding-a zehazten

du. Balio hauetariko bat zehaztu behar da:

ISO-8859-1

UTF-8

ITZULERA

Sinatutako XML dokumentua.

ADIBIDEA

xml=”

<root>

13 Kontsultatu http://www.w3.org/TR/xpath/ 14 Kontsultatu http://www.w3.org/TR/xpath/ 15 Kontsultatu http://www.w3.org/TR/xmldsig-core/

<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“, “ISO-8859-

1”)

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 xmlEntrada,

TestuKatea nodoAFirmar, TestuKatea nodoPosiciónFirma, TestuKatea

mecanismoCannonicalización, String xmlEntradaEncoding)

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 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-8859-

1”)

signed_xml=applet.signXAdESEnvelopedSelectNodeBase64 (xml,”//data2”,”//data2”,”

TRANSFORM_C14N_OMIT_COMMENTS“, “ISO-8859-1”)

17 Kontsultatu http://www.w3.org/TR/xpath/ 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="izenpesigner-

applet.jar" name="applet">

</header>

</applet>

<body>

</body>

</html>

1.6.2 Skinak erabiltzea

Applet-aren skina ordeztu egin daiteke. Ikus Idazki - Skin

1.6.3 Applet-arentzako metodo espezifikoak

1.6.3.1 promptFilesystem

Fitxategi edo direktorio baten sarreraz/irteeraz galdetzen duen elkarrizketa-koadro bat

erakusten du.

DEIAREN FORMATUA

String promptFilesystem(boolean isInput, boolean isFolder, String

semicolonSeparatedExtensionList)

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.3.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.4 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="izenpesigner-

applet.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, EZ DAGO ONARTUA ETA METODOAK ETA

FUNTZIONALTASUNA EDOZEIN UNETAN ALDA DAITEZKE.

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 PDF dokumentu bat PAdES eta denbora-zigiluarekin sinatzea

applet.clearInputs();

applet.setOption("va-universal-ocsp-url", "http://ocspdes.izenpe.com:8094");

applet.setOption("timestamp-url", "http://ocspdes.izenpe.com:8093");

alert("Hautatu sinatzeko PDF fitxategi bat");

inputFile = applet.promptFilesystem(true, false, "pdf");

document.form.inputFile.value=inputFile;

alert("Hautatu sinatzeko PDF fitxategiaren irteerako bide-izena");

outputFile = applet.promptFilesystem(false, false, "pdf");

document.form.outputFile.value=outputFile;

applet.addInput("file", inputFile,"file", outputFile);

applet.setCryptoStoreAuto();

applet.sign("pades-timestamped");

1.9.3 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.4 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.5 TIES kodea berreskuratzea19

alert("TIES-PUBLIC="+applet.getTies ());

1.9.6 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.7 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.8 CAdES-BES dettached bat mankomunatuta sinatzea

applet.clearInputs();

applet.addInput("inline-text",”sinatutakodatuak”,"inline",null);

applet.signSetAdESLevel("bes");

applet.setCryptoStoreAuto();

applet.sign("cades-sign-dettached");

var cades_1firma=applet.getOutputContent(0,true);

19

UNIX sistemetan dei honen bidez berreskura daiteke TIES kodea: pkcs11-tool --read-object --

label 'TIES-PUB' --type data

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.9 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("va-universal-ocsp-url", "http://ocspdes.izenpe.com:8094");

applet.setOption("timestamp-url", "http://ocspdes.izenpe.com:8093/");

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.setCryptoStoreAuto();

applet.signSetAdESLevel("bes");

applet.sign("xades-sign-dettached");

var data_xml_signed=applet.getOutputContent(0,false);

1.9.10 XAdES-BES dettached sinadura kanpoko hash batetik abiatuta.

Sartutako hash-a fitxategi bitar batetik abiatuta kalkulatu da.

applet.clearInputs();

applet.setOption("signature-hashalgo","SHA-1");

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.9.11 Facturae sinadura

‘Facturae” sinadura motak XAdES enveloped sinadura batetik abiatuta sortzen dira; hor

ezartzen da facturaeren 3.1. sinadura-politika.

Parametrizazio hau erabiltzen da:

Sarrera UTF-8 formatuan.

Erabili beharreko kanonikalizazio-metodoa 'TRANSFORM_C14N_EXCL_WITH_COMMENTS' izango

da.

Gaur egun EPES-BES profila duten sinadurak besterik ez dira onartzen; beraz, ez dago

zehaztu beharrik.

Sinaduren adibideak:

Facturae motako fitxategien sinadura; fitxategian dute irteera;

bertan, INPUT_FILE_PATH eta OUTPUT_FILE_PATH sarrerako/irteerako fitxategien bide-izena dira.

applet.clearInputs();

applet.setCryptoStoreAuto();

applet.addInput("file", INPUT_FILE_PATH, "file", OUTPUT_FILE_PATH);

applet.sign("facturae");

Fakturaren sinadura Base64-an;

bertan, 'base64input'-ek sinatu beharreko fakturaren XMLaren Base64-ko katea

definitzen du.

applet.clearInputs();

applet.setCryptoStoreAuto();

applet.addInput("inline-binary", base64input, "inline", null);

applet.sign("facturae");

String res = applet.getOutputContent(0, true)

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 honen bidez:

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

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 konprimatua, Java Virtual

Machine-ren bidez abiarazi beharrekoa (JRE 1.6).

Mac: jar fitxategi konprimatua, 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. 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.

3. Hurrengo panelean aplikazioa zein direktoriotan instalatu nahi dugun aukeratuko dugu

(fitxategi-sisteman nabigatzeko aukera izango dugu, direktorioa aukeratzeko):

4. Hurrengo panelak instalazioaren bilakaeraren berri emango digu.

5. Panel horretan, zein plataformatan gauden, lasterbideak pertsonalizatzeko aukerak

hautatuko ditugu.

6. 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 sinadura-

ziurtagiriaren 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

1.13.2.1 PDF motako sinadurak

◦ Erabili Adobe Acrobat Reader tresna sinatutako PDF dokumentuak egiaztatzeko.

◦ PadES motako sinaduretarako Adobe Reader X edo berriagoa behar da.

1.13.2.2 XML sinadurak

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 Aplikazioaren hizkuntza: 0=Gaztelania 1=Euskara

iscipherActivated 1, zifratzeko aukera aktibatuta badago; bestela, 0

p11list PKCS#11 gailu kriptografikoen zerrenda, puntu eta koma bidez bereizia

proxy Ikus Id@zki-ren APUrako setOption deian erabilgarri dauden aukerak

helpURLes Gaztelaniazko laguntzaren URLa

helpURLeu Euskarazko laguntzaren URLa

CINS Instalazio-kodea

CPWDINS 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 erregistro-

kodeak 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 da:

signXadesEnvelopingSelectnode.

XAdES enveloped sinatzeko mekanismoa eguneratu da.

createXAdESManifest gehitu 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, "Izenpe sinadura-politika

1.5");

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/s15-

12020/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-sign-

name” 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

Java-ren 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.

v1.7.4 – Botoiak berrantolatzea

Botoiak berrantolatu egin dira.

v1.7.5 – PAdES + FNMT euskarria

FNMT driver-ak gehitu dira eta probak egin dira Linux eta Windows sistemetan.

PAdES sinadura mota sartu da (BES eta timestamped), part3 motakoa, lehendik zegoen

PDF sinaduraz gain.

Enveloped motako sinaduretarako konponketa.

v1.8 – Facturae

Applet-aren #sign metodoari 'facturae' sinadura mota gehitu zaio, Facturae formaturako

baliozko sinadurak egiteko aukera ematen duena, 3.1 sinadura-politikarekin.

v2.0.13 – Zuzenketa txikiak

Zuzendu egin da 'Cannot resolve element with ID Manifest1' errorea,

'createXAdESManifest' metodoa eta 'xade-sign-enveloping' sinadura mota erabiltzean.