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