Postopek za izdelavo zahtevka

  1. Za začetni dokument uporabimo dokument v formatu .xml - Vzorec1.xml. V tem dokumentu vpišemo serijsko številko potrdila ter EMŠO in davčno številko osebe.
  2. Izračunamo DigestValue elementa Predstavitev, ki ga je potrebno preoblikovati v kanonsko obliko.
  3. Vrednost digest-a v obliki base64 je "6FJDChZd7yPuixFpKHLdLLsVOTc=". To vrednost (brez narekovajev) vpišemo v element DigestValue.
  4. Element SignedInfo preoblikujemo v kanonsko obliko in ga podpišemo. Podpis v obliki base64 je:

uUuXPrIOGuTzluIPGB9KLnaz+r0qM3S98EuJWysGS2Rn3GXT259MFFvUerZAHpdb
xyNGVV5si3hU0wOXkoJpTfPjllG237oW98V+bLIpuOBh8jc/v2W5E9RPK4dpFC1Y
x3hBlODtpp2yE95VW5khDqqzUIdBlppjUqAIH9tbkNGO1k/PVBCYSmAujCHT7aky
Y6K61iSo1k2GnUTcj1/swBsWEUvOOoHilfOPDdS/ZDAu4MBnM1zmCZAoySgr1gpI
jWj0Sv4ItBnRzoQwYRAJF+0AgL9XoGsHaqFRtMaQtzlYtAub07jBHXiC8Amsi6kw
5uxsa/4EFja7tYK0U6/OWw==

Zgornji niz (brez prelomov vrstic) shranimo v element SignatureValue. Za podpis potrebujemo privatni ključ. V našem primeru smo uporabili privatni ključ, ki pripada dig. potrdilu iz pripete datoteke tomaz-test.p12. Geslo za dostop je tomaz-test.

  1. V element X509Certificate vpišemo dig. potrdilo, v formatu base64, ki pripada ključu, s katerim smo naredili podpis v prejšnji točki.
  2. Do sedaj narejen dokument vložimo v ovojnico za SOAP. Tako dobimo dokument, ki ga lahko vidimo v priponki Soap.xml.
    Pomembno je, da:
  • je struktura dokumenta PodpisaniDokument čimbolj takšna kot v našem primeru (nekateri Id-ji so lahko drugačni ali drugje, vrstni red večinoma ni pomemben itd.)
  • ima element Predstavitev točen Id="MyVisualisation2"
  • je ta element podpisan tako, da je znotraj SignedInfo <Reference URI="#MyVisualisation2">
  • je metoda kanonikalizacije <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
  • pred značko <Podatki.../> in za njo znotraj elementa <Predstavitev...></Predstavitev> ni presledkov, tabov ali prelomov vrstic
  • ima element Signature točen Id="ClientSignature"
  • Zahtevek za HTTPS začnemo z naslednjimi vrsticami:
  • SOAPAction: [""]
    Accept: [text/xml, multipart/related]
    Content-Type: [text/xml; charset=utf-8]
    Content-Length: 3030

    Dolžina v Content-Length mora biti enaka številu znakov, ki sledijo. Zatem dodamo prazno vrstico, prilepimo vsebino iz dokumenta iz prejšnje točke in še eno prazno vrstico. Tako sestavljen zahtevek pošljemo preko vrat 443 na strežnik storitve-ca.gov.si.

    1. Čez nekaj trenutkov dobimo odgovor. Primer se nahaja v priponki Odgovor.dat.