» »

Davčne blagajne

Davčne blagajne

««
3 / 27
»»

theanswer3 ::

Ok še eno vprašanje. Se komu svita kako se generira MessageID oziroma kaj pač pomenijo te cifre.

MH0 ::

GUID?

Strato5 ::

vuego je izjavil:

Soap ovojnica mora biti zraven zaradi namespace-ov (fu: je definiran v glavi) in kanonizacije. Brez tega ne gre.

Lahko pa probaš tako, da za osnovni element (BusinessPremiseRequest) ročno specificiraš ns in podajaš XML elemente brez pripone fu:


potem moram dodati soap ovojnico že pred podpisovanjem in vse namespace definirati tam?

pri temledelu:
$canonical = $PEXML->C14N(false, true);
$signatureDigest = base64_encode(hash('sha256', $canonical, true));

pa moram noter v $canonical dati tag SoapEnvelope?

in s akšnimi argumenti naj kličem funkcijo C14N(false, true)? ker pri določenih kombinacijah se podpis spremeni.

EDIT:
tudi z naslednjo modifikacijo ne dela:
$PEXML->loadXML($besediloPEXML);

$PEXML->getElementsByTagName('BusinessPremiseRequest')->item(0)->setAttribute('Id', 'test');

$canonical = $PEXML->getElementsByTagName('Envelope')->item(0)->C14N(false, false);
$signatureDigest = base64_encode(hash('sha256', $canonical, true));

//addsignatureNode
$rootElem = $PEXML->getElementsByTagName('BusinessPremiseRequest')->item(0);

$sigNode = $rootElem->appendChild(new DOMElement('Signature'));


drugače pa mi je cel ta pristop malo mimo... Tisto kar daš v kanonizacijo da zračunaš signatureValue bi mogla bit vsebina sporočila, da potem lahko verify funkcija preveri, če je bilo sporočilo še spremenjeno po tem ko je bilo že podpisano. če jaz dam noter envelope (ki vsebuje tudi podpis) in iz tega zračunam signatureValue, potem pa še dodajam stvari v podpis, potem je jasno, da bo funkcija zavrnila zadevo, češ da podpis ni ustrezen. kar mi ni jasno, je to kak naj dam noter v kanonizacijo podpis, brez da bi ga potem še spreminjal, ker v najboljšem primeru moram potem ko to zračunam vsaj še signatureValue vstavit noter, kar pa je tehnično gledano spet sprememba... ali čisto narobe razmišljam?

Zgodovina sprememb…

  • spremenilo: Strato5 ()

PrimozHisof ::

Stepox je izjavil:

PrimozHisof je izjavil:

Kar se tiče Tls 1.0 in Windows XP povezava še vedno ne deluje.
Deluje, če uporabljaš Tls 1.0 na Windows 7 ali 8. Očitno je Framework 4.0 le premalo.

Framework 4.0 je dovolj. Za Windows XP pa je potrebno da namestiš "Cipher suite - KB3055973", dobiš pa ga tule https://www.microsoft.com/en-us/downloa... , doda ti nove AES standarde.
Sicer je namenjen Windows Posready 2009 ampak gre lepo tudi na ostale Windows XP serije.
Preverjeno pošiljanje deluje na Windows Posready 2009.

Hvala, ampak na XP ne moreš tega instalirat,...

prlinjo ::

Strato5 je izjavil:

vuego je izjavil:

Soap ovojnica mora biti zraven zaradi namespace-ov (fu: je definiran v glavi) in kanonizacije. Brez tega ne gre.

Lahko pa probaš tako, da za osnovni element (BusinessPremiseRequest) ročno specificiraš ns in podajaš XML elemente brez pripone fu:


potem moram dodati soap ovojnico že pred podpisovanjem in vse namespace definirati tam?

pri temledelu:
$canonical = $PEXML->C14N(false, true);
$signatureDigest = base64_encode(hash('sha256', $canonical, true));

pa moram noter v $canonical dati tag SoapEnvelope?

in s akšnimi argumenti naj kličem funkcijo C14N(false, true)? ker pri določenih kombinacijah se podpis spremeni.

EDIT:
tudi z naslednjo modifikacijo ne dela:

$PEXML->loadXML($besediloPEXML);

$PEXML->getElementsByTagName('BusinessPremiseRequest')->item(0)->setAttribute('Id', 'test');

$canonical = $PEXML->getElementsByTagName('Envelope')->item(0)->C14N(false, false);
$signatureDigest = base64_encode(hash('sha256', $canonical, true));

//addsignatureNode
$rootElem = $PEXML->getElementsByTagName('BusinessPremiseRequest')->item(0);

$sigNode = $rootElem->appendChild(new DOMElement('Signature'));


drugače pa mi je cel ta pristop malo mimo... Tisto kar daš v kanonizacijo da zračunaš signatureValue bi mogla bit vsebina sporočila, da potem lahko verify funkcija preveri, če je bilo sporočilo še spremenjeno po tem ko je bilo že podpisano. če jaz dam noter envelope (ki vsebuje tudi podpis) in iz tega zračunam signatureValue, potem pa še dodajam stvari v podpis, potem je jasno, da bo funkcija zavrnila zadevo, češ da podpis ni ustrezen. kar mi ni jasno, je to kak naj dam noter v kanonizacijo podpis, brez da bi ga potem še spreminjal, ker v najboljšem primeru moram potem ko to zračunam vsaj še signatureValue vstavit noter, kar pa je tehnično gledano spet sprememba... ali čisto narobe razmišljam?


Ne poznajem PHP sintaksu, ali mi se čini da ne smije biti "Envelope" u ovoj liniji:
$canonical = $PEXML->getElementsByTagName('Envelope')->item(0)->C14N(false, false);

Možda da probaš ovako:
$canonical = $PEXML->getElementsByTagName('BusinessPremiseRequest')->item(0)->C14N(false, false);

technolog ::

Kaj pa če bi enostavno uporabili SOAP knjižnico, ki je BTW v PHP že vgrajena?

https://secure.php.net/manual/en/class....

To nikamor ne pelje, da ročno manipulirate ta XML.

Zgodovina sprememb…

vuego ::

@matija7

Kanoniziraš samo node, ki ga podpisuješ. Moraš pa za ustrezno kanonizacijo pravilno podati vhodne podatke. V tvojem primeru nimaš ustrezno definiranih namespaceov.

Osebno sintakse na nivoju DOM(node) ne poznam, imam pa v PHP implementirano podpisovanje računov XADES-BES (eSlog) preko knjižnice xmlseclibs. Takrat ko sem to delal, sem se tudi precej lovil okoli tega, je pa vseskupaj za moje pojme precej bolj pregledno.

Zgodovina sprememb…

  • spremenil: vuego ()

Strato5 ::

technolog je izjavil:

Kaj pa če bi enostavno uporabili SOAP knjižnico, ki je BTW v PHP že vgrajena?

https://secure.php.net/manual/en/class....

To nikamor ne pelje, da ročno manipulirate ta XML.



Sem tudi probal s SOAP knjižnico, pa ne funkcionira, ker nimam wsdl linka...
https://blagajne-test.fu.gov.si:9002/v1... pa soapClient ne sprejme oz pač javi da ne more prebrat...

@vuego:
kje/kakšno pa mam napako, pri definiciji namespacov? XML je isti, kot tisti v primerih. Morem popravit v funkciji za kanonizacijo in tam kake namespace noter dat?

mihelacko ::

Kaj se že je komu uspelo povezati z TLS 1.0 in .NET 3.5 ??

inkanet ::

A kdo ve kaj je treba vnesti pod naslednje oznake:

<X509SubjectName>

in sicer v polje 2.5.4.5 (v priročniku = #130131)

<fu:MessageID>

Ali se lahko vpiše poljubno številko/oznako?

<X509SerialNumber>


Kako najti pravo serijsko številko? Meni keytool in sslopen vrneta 16 mestno serijsko številko v hexadecimalni obliki. V priročniku je 19 mestna številka v decimalni obliki.

Zaenkrat mi uspe pošiljane V JSON obliki, napaka odgovora je S004: Identifikator digitalnega
potrdila ni ustrezen.

Strato5 ::

Ok še eno vprašanje (upam da bom tole čimprej razrešil, ker mam počasi že občutek, da se mi meša)...

Torej dobil sem odgovor od FURSa glede tega digitalnega podpisa in odgovor se je glasil:
"namespace je potrebno navesti v envelope, v prilogi je primer pravilnega xml."

Priložena datoteka dejansko gre skoz če jo pposkusim poslati, kar pa me zanima je sledeče:
Kje je razlika med njihovo in mojo datoteko oziroma, kako/kje moram definirati namespace v Envelope?

Moja datoteka (NI OK):
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fu="http://www.fu.gov.si/" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
 	<SOAP-ENV:Body>
 		<fu:BusinessPremiseRequest Id="test">
 			<fu:Header>
 				<fu:MessageID>2E1B49B0-F007-4AAB-9824-5B85FBD08BE7</fu:MessageID>
 				<fu:DateTime>2015-09-15T10:41:04Z</fu:DateTime>
 			</fu:Header>
			<fu:BusinessPremise>
 				<fu:TaxNumber>10041052</fu:TaxNumber>
 				<fu:BusinessPremiseID>TRGOVINA1</fu:BusinessPremiseID>
 				<fu:BPIdentifier>
 					<fu:RealEstateBP>
 						<fu:PropertyID>
 							<fu:CadastralNumber>365</fu:CadastralNumber>
 							<fu:BuildingNumber>12</fu:BuildingNumber>
 							<fu:BuildingSectionNumber>3</fu:BuildingSectionNumber>
 						</fu:PropertyID>
 						<fu:Address>
 							<fu:Street>Cankarjeva</fu:Street>
 							<fu:HouseNumber>12</fu:HouseNumber>
 							<fu:HouseNumberAdditional>A</fu:HouseNumberAdditional>
 							<fu:Community>Ljubljana</fu:Community>
 							<fu:City>Ljubljana</fu:City>
 							<fu:PostalCode>1000</fu:PostalCode>
 						</fu:Address>
 					</fu:RealEstateBP>
  				</fu:BPIdentifier>
				<fu:ValidityDate>1990-08-25</fu:ValidityDate>
  				<fu:SoftwareSupplier>
 					<fu:TaxNumber>42839521</fu:TaxNumber>
 				</fu:SoftwareSupplier>
 			</fu:BusinessPremise>
 		<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/><Reference URI="#test"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><DigestValue>mFKM1Fc5i3UsIs1t2NVO7CdcaIE0y/pdSRIBR5gGOWI=</DigestValue></Reference></SignedInfo><SignatureValue>Gz350EuSHz8Cpet64vNxk7gLtdWEeXJXaymMIOFgJas3hnVsR0ND+8D+eNoWKtVuqcR3XeXMqVQAm3VekEjmdUhqqs0gegxJXVNFFIAylU9NnQ49Dn2Hgq5pvRvZ1TGT66xC/GKKKYqqXYLvR4IbYipMD2Xf1Sn8lgth7WL2aitAKNdkFVtjI1S/QAqh+IL/AZQEUlgT/6S7TuK8zzZNXm8n8YQWWUxavc8HNHSlJe73X9iSvHyoL8PNiuBRUw467GOgk+K9cMyu3ShpS6h8zRkrrYqHog3FhqKbWn+zCJwnc/vU7I115kYDNJQL2XA+jqXAm9cAIYNnKbAP98Y8Mw==</SignatureValue><KeyInfo><X509Data><X509IssuerSerial><X509IssuerName>C=SI,O=state-institutions,CN=Tax CA Test</X509IssuerName><X509SerialNumber>6272978640195208819</X509SerialNumber></X509IssuerSerial><X509SubjectName>C=SI O=state-institutions OU=DavPotRacTEST OU=10041052 serialNumber=1 CN=TESTNO PODJETJE 108</X509SubjectName></X509Data></KeyInfo></Signature></fu:BusinessPremiseRequest>
 	</SOAP-ENV:Body>
 </SOAP-ENV:Envelope>


njihova datoteka (JE OK):
<?xml version="1.0" encoding="utf-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fu="http://www.fu.gov.si/" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
  <SOAP-ENV:Body>
    <fu:BusinessPremiseRequest Id="test">
      <fu:Header>
        <fu:MessageID>004464d8-8cd0-47a9-9445-9c28a1dd6230</fu:MessageID>
        <fu:DateTime>2015-09-18T08:07:55</fu:DateTime>
      </fu:Header>
      <fu:BusinessPremise>
        <fu:TaxNumber>10041052</fu:TaxNumber>
        <fu:BusinessPremiseID>TRGOVINA1</fu:BusinessPremiseID>
        <fu:BPIdentifier>
          <fu:RealEstateBP>
            <fu:PropertyID>
              <fu:CadastralNumber>365</fu:CadastralNumber>
              <fu:BuildingNumber>12</fu:BuildingNumber>
              <fu:BuildingSectionNumber>3</fu:BuildingSectionNumber>
            </fu:PropertyID>
            <fu:Address>
              <fu:Street>Cankarjeva</fu:Street>
              <fu:HouseNumber>12</fu:HouseNumber>
              <fu:HouseNumberAdditional>A</fu:HouseNumberAdditional>
              <fu:Community>Ljubljana</fu:Community>
              <fu:City>Ljubljana</fu:City>
              <fu:PostalCode>1000</fu:PostalCode>
            </fu:Address>
          </fu:RealEstateBP>
        </fu:BPIdentifier>
        <fu:ValidityDate>1990-08-25</fu:ValidityDate>
        <fu:SoftwareSupplier>
          <fu:TaxNumber>42839521</fu:TaxNumber>
        </fu:SoftwareSupplier>
      </fu:BusinessPremise>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /><Reference URI="#test"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /><DigestValue>4Nbm+rDcS9VTvgh157wD87iVCNZ/E8yFRnnlaK6Huzg=</DigestValue></Reference></SignedInfo><SignatureValue>AlatazD7NTKiMTB3KkSzybbQsbvEDmK924dEh/OrbnH1SOFKIVwCAY7Uq/n4pBcyHgOTrps5HGMWj0YcFYxoCgvaPVDJM5uvZNhnrvNIotWHoFzyifVl2jNiZEuc/+iDJywDji+OOc5mFu/RL7aDIfjFrw99xM2rJui0CC8AiU/fVwDTNSsy0PW3iRIgwqsR8E+f90ByVY4xsYM3GQw66ET/Mo/QWG1O5vUQ3F5TkJE1O5/jw3k+m7FYMIFUqNRtlx0sOm4UfmEWY+69uQMp0QPm64wKydsbm1f5NiriHqj7llmTMl7e9ZMZCy8GH/15oNLSfgSimUaqLB6ASlkiig==</SignatureValue><KeyInfo><X509Data><X509IssuerSerial><X509IssuerName>CN=Tax CA Test, O=state-institutions, C=SI</X509IssuerName><X509SerialNumber>6272978640195208819</X509SerialNumber></X509IssuerSerial><X509SubjectName>CN=TESTNO PODJETJE 108, SERIALNUMBER=1, OU=10041052, OU=DavPotRacTEST, O=state-institutions, C=SI</X509SubjectName></X509Data></KeyInfo></Signature></fu:BusinessPremiseRequest>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Kje je razlika? Kako drugače je v njihovi datoteki definiran kak namespace kot pa v moji? ...

grandibal ::

Glede namespace ne vidim nobene razlike, lahko pa poskusiš še spremenit pri sebi

<?xml version="1.0"?>

v
<?xml version="1.0" encoding="utf-8"?>

če ga čisto slučajno to kaj zmede.

Imaš pa še drugačen DateTime format, meni tudi to dela probleme.

Zgodovina sprememb…

DamijanD ::

.NET
Vprašanje na temo podpisovanja zahtevkov:

Če delaš na nivoju XMLja, podpisovanje načeloma ni tak problem. Kako bi pa zadevo podpisal, če imaš WebReferenco na njihov WSDL? Npr:
var bpr = new FiscalVerification.BusinessPremiseRequest();
bpr.BusinessPremise = new FiscalVerification.BusinessPremiseType();
//vsebina
bpr.Signature = ?????

PrimozHisof ::

Strato5 je izjavil:

2E1B49B0-F007-4AAB-9824-5B85FBD08BE7..

a niso velike črke v HEX prepovedane?

Strato5 ::

PrimozHisof je izjavil:

Strato5 je izjavil:

2E1B49B0-F007-4AAB-9824-5B85FBD08BE7..

a niso velike črke v HEX prepovedane?


Če povem čist po pravici, ne vem... ampak nikjer ni nič definirano kaki more bit ta identifikator (mislim da smo samo iz formata v primerih vsi predvidevali da more bit GUID/UUID).

Jaz samo v filemakerju (ki je moja platforma) kličem funkcijo Get( UUID ) in pač tisto kar mi funkcija vrne prilepim v tisti node.

V specifikacijah piše:
Enkratni identifikator sporočila.
Vsako sporočilo mora imeti enkratno identifikacijsko oznako.
Enako velja tudi pri pošiljanju sporočila, ki se zaradi napake pošilja ponovno.


če torej predpostavimo, da more bit ID sporočila unikaten na nivoju davčnega zavezanca, bi lahko teoretično pisal te IDje tudi kot
000000000000000000000000000000000001, 000000000000000000000000000000000002, 000000000000000000000000000000000003 ... itd. (tako si vsaj jaz razlagam tale navodila in tako majo tudi za hrvaški sistem zastavljeno kolikor se spomnim).
Pa tudi algoritmi, v PHP, ki sem jih sprobal za generacijo GUID-ja so vedno vračali velike črke... hex pa gre itak samo 0-9 in a-f tak da nebi smelo glih bit case sensitive...

Sparc64 ::

Kako preverite podpis vrnjenega token-a? Sam delam z JSON, pa nekako ne morem preveriti podpisa, saj vedno pade. Podpis moreš preveriti s tem, ki ga vrnejo z x509 in ga primerno pretvoriš in uporabiš (vsaj tako jaz delam)?

pix ::

če kdo ne ve, kaj je treba v QR kodo dat:
QR=koda vsebuje podatke v obliki: ZOI#davčna številka zavezanca#datum in čas izdaje računa v obliki LLLL_MM_DDTUU:MM:SS. Sestavljena je iz 29x29 modulov z ravnjo odprave napak "L". Natisnjena velikost kode je vsaj 20mm x 20mm. Obdana je s prazno obrobo v velikosti vsaj 2mm.

DamijanD ::

Je komu uspelo podpisati v .NET 3.5? Predvsem vidim problem v:

CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), "http://www.w3.org/2001/04/xmldsig-more#...

DamijanD ::

mihelacko je izjavil:

Kaj se že je komu uspelo povezati z TLS 1.0 in .NET 3.5 ??

Meni je echo deloval na windows 7 /.net 3.5
Imam pa problem, ker v manj kot 4.5 ne znam podpisati :'(

PrimozHisof ::

DamijanD je izjavil:

Je komu uspelo podpisati v .NET 3.5? Predvsem vidim problem v:

CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), "http://www.w3.org/2001/04/xmldsig-more#...


treba je najt nadomestek za ta algoritem...čeprav povzroča 256 dvome

DamijanD je izjavil:

mihelacko je izjavil:

Kaj se že je komu uspelo povezati z TLS 1.0 in .NET 3.5 ??

Meni je echo deloval na windows 7 /.net 3.5...
:'(


na windows XP pa ne dela :(

Zgodovina sprememb…

perci ::

pix je izjavil:

če kdo ne ve, kaj je treba v QR kodo dat:
QR=koda vsebuje podatke v obliki: ZOI#davčna številka zavezanca#datum in čas izdaje računa v obliki LLLL_MM_DDTUU:MM:SS. Sestavljena je iz 29x29 modulov z ravnjo odprave napak "L". Natisnjena velikost kode je vsaj 20mm x 20mm. Obdana je s prazno obrobo v velikosti vsaj 2mm.

Nekaj mi pravi, da se zna tole malo spremeniti...

PrimozHisof ::

podpisovanje na .NET 3.5
http://clrsecurity.codeplex.com
če kdo zna to skombinirati s dig.potrd.?

Zgodovina sprememb…

Strato5 ::

pix je izjavil:

če kdo ne ve, kaj je treba v QR kodo dat:
QR=koda vsebuje podatke v obliki: ZOI#davčna številka zavezanca#datum in čas izdaje računa v obliki LLLL_MM_DDTUU:MM:SS. Sestavljena je iz 29x29 modulov z ravnjo odprave napak "L". Natisnjena velikost kode je vsaj 20mm x 20mm. Obdana je s prazno obrobo v velikosti vsaj 2mm.


Si pisal na FURS? je to potrjena informacija? ker v tehničnih specifikacijah ni nikjer govora o QR kodi sploh (vem pa da more bit QR koda tudi prisotna).

mihelacko ::

Strato5 je izjavil:

pix je izjavil:

če kdo ne ve, kaj je treba v QR kodo dat:
QR=koda vsebuje podatke v obliki: ZOI#davčna številka zavezanca#datum in čas izdaje računa v obliki LLLL_MM_DDTUU:MM:SS. Sestavljena je iz 29x29 modulov z ravnjo odprave napak "L". Natisnjena velikost kode je vsaj 20mm x 20mm. Obdana je s prazno obrobo v velikosti vsaj 2mm.


Si pisal na FURS? je to potrjena informacija? ker v tehničnih specifikacijah ni nikjer govora o QR kodi sploh (vem pa da more bit QR koda tudi prisotna).


Link 5. člen

Strato5 ::

opa to sem pa čisto pozabil :) hvala!

pa še to: kaj mislijo z 29x29 modulov? da ma QR koda mrežo 29x29 za celotno kodo? to se da definirat? ker do zdaj kolkor sem generatorjev gledal in s knjižnicami delal je blo tak da se je mreža prilagodila količini podatkov in nivoju odprave napak...

mihelacko ::

mislim da moreš dati verzijo 3 (Link)

theanswer3 ::

QR koda ima 33x33 modulov. Toliko teksta je nemogoče shraniti na 29x29. So rekli da bodo popravili v dokumentaciji. Edina stvar, ki jo moraš nastavit je, da daš error correction na L.

Zgodovina sprememb…

theanswer3 ::

DamijanD je izjavil:

Je komu uspelo podpisati v .NET 3.5? Predvsem vidim problem v:

CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), "http://www.w3.org/2001/04/xmldsig-more#...


Očitno je dovolj če skopiraš:

public class RSAPKCS1SHA256SignatureDescription : SignatureDescription
    {
        public RSAPKCS1SHA256SignatureDescription()
        {
            KeyAlgorithm = "System.Security.Cryptography.RSACryptoServiceProvider";
            DigestAlgorithm = "System.Security.Cryptography.SHA256Managed";
            FormatterAlgorithm = "System.Security.Cryptography.RSAPKCS1SignatureFormatter";
            DeformatterAlgorithm = "System.Security.Cryptography.RSAPKCS1SignatureDeformatter";
        }

        public override AsymmetricSignatureDeformatter CreateDeformatter(AsymmetricAlgorithm key)
        {
            var asymmetricSignatureDeformatter = (AsymmetricSignatureDeformatter)CryptoConfig.CreateFromName(DeformatterAlgorithm);
            asymmetricSignatureDeformatter.SetKey(key);
            asymmetricSignatureDeformatter.SetHashAlgorithm("SHA256");
            return asymmetricSignatureDeformatter;
        }

        public override AsymmetricSignatureFormatter CreateFormatter(AsymmetricAlgorithm key)
        {
            var asymmetricSignatureFormatter = (AsymmetricSignatureFormatter)CryptoConfig.CreateFromName(FormatterAlgorithm);
            asymmetricSignatureFormatter.SetKey(key);
            asymmetricSignatureFormatter.SetHashAlgorithm("SHA256");
            return asymmetricSignatureFormatter;
        }
    }


Kot nov class pred ostalo kodo programa. Na 7 dela, moram stestirat če tudi na XP

theanswer3 ::

Jaz imam drug problem. Vrača mi unexpected EOF or 0 bytes error ko želim komunicirat preko TLS na XP-jih. Na sedmici gre čez komunikacija z isto kodo. WTF?! ;((

pix ::

perci je izjavil:

pix je izjavil:

če kdo ne ve, kaj je treba v QR kodo dat:
QR=koda vsebuje podatke v obliki: ZOI#davčna številka zavezanca#datum in čas izdaje računa v obliki LLLL_MM_DDTUU:MM:SS. Sestavljena je iz 29x29 modulov z ravnjo odprave napak "L". Natisnjena velikost kode je vsaj 20mm x 20mm. Obdana je s prazno obrobo v velikosti vsaj 2mm.

Nekaj mi pravi, da se zna tole malo spremeniti...


upam da se bo, ampak v tej smeri da ne bo obvezna .....

anarho ::

a lahko kdo potrdi da procesiranje podatkov preko REST servicov (JSON) dejansko deluje na server strani?

kodo pisem za android in se ze par dni mucim in obracam vse zivo okol pa vedno dobim 'S100' napako v odgovoru (pri registraciji prostora in racuna). echo mi deluje BP, pa tudi tam so bile tezave. najprej sem zacel s SOAPom ker smo podobno stvar ze imeli narejeno za hrvasko. ko sem totalno obupal nad soapom sem probal se z JSONom in tudi tam ni slo nic skozi. po malci se vsedem spet za racunalnik in se enkrat zazenem testno kodo in ugotovim da koda cudezno deluje, tako za SOAP kot za JSON. Vmes so ocitno nekaj popravili, kar seveda niso zeleli priznati niti so kjerkoli omenili da so imeli tezave ali da jih imajo se vedno.

kolega ki pise kodo za windows z uporabo SOAPa je imel enake tezave. danes so koncno popravili odgovor pri registraciji prostora s pomocjo SOAP sporocil in sedaj v odgovoru vracajo pravilen certifikat s pomocjo katerega se lahko verificira odgovor. seveda napake niso priznali, ceprav se v pripetem certifikatu vidi kaj so spremenili.

ne morem verjeti da se lahko drzavna institucija obnasa tako neprofesionalno in da ne stestira stvari ki jih sama objavi. ocitno so si vzeli pravico da bomo razvijalci nemesto njih, zastonj testirali na pol dokoncane service. katastrofa ... nikjer opravicila, nikjer pojasnila, nic od nic. ni cudno da smo 'zadnja rupa na svirali' kar se tice evrope. poglejte si sam zmazek od dokumentacije ki so ga vceraj objavili z dodanimi angleskimi prevodi. totalno sem razocaran in razkurjen ....


lahko kdo potrdi da REST servisi delujejo? je komu uspelo stestirati celoten proces v androidu?

lep pozdrav

Zgodovina sprememb…

  • spremenil: anarho ()

vuego ::

Zaradi verifikacije odgovora sam jim težil tudi sam. Serijska številka je bila prej #130131 (polje 2.5.4.5).
Zaradi lojtre # pred številko je nastala težava, ker jo sistemi obravnavajo kot slabo podprto osmiško številko. Pri tem se je zataknil tudi xmlsec. Po novem verifikacija deluje :)

anarho ::

vuego jap, tocno to. mislim wtf ... tega niso mogli prej stestirat al v cem je bil problem?

Tech2k ::

Meni JSON še ne deluje, javlja da digitalni podpis ni ustrezen?
Ali je spodnja logika pravilna:
1. združimo JWS_Header + . + JWS_Payload
2. digitalno podpišemo z prejetim testnim certifikatom
3. dodamo v JSON kot base64url(JWS_Signature)

Drugače sem pa ravnokar prejel email glede QR kode beri spodaj

obveščamo vas, da je na spletni strani portala eDavki http://www.datoteke.fu.gov.si/dpr/index... objavljena nova verzija tehničnih navodil (verzija 1.2), katera med drugim vsebuje tudi angleške prevode.

Dodatno vas obveščamo, da je v pripravi sprememba Pravilnika o izvajanju Zakona o davčnem potrjevanju računov v delu, ki predpisuje izpis QR kode. Kot alternativa izpisu podatkov v QR kodi bo omogočen tudi izpis podatkov v PDF417 kodi ali kodi 128. Nabor podatkov vsebovan v katerikoli od treh kod bo enak (zoi, davčna številka, datum izdaje), spremenjena pa bo oblika zapisa in bo enotna za vse tri predvidena kode. Namen te spremembe je omogočiti lažji in hitrejši izpis računov na starejših tiskalnikih, kateri še ne podpirajo izpisa podatkov v QR kodi. Priporočamo, da zato počakate z razvojem programskih rešitev v tem delu, dokler pravilnik ne bo objavljen. Sprememba pravilnika bo objavljena v kratkem.



Lep pozdrav, MM.

REPUBLIKA SLOVENIJA

MINISTRSTVO ZA FINANCE

Zgodovina sprememb…

  • spremenil: Tech2k ()

perci ::

Torej drzavni paraziti, kot jih nekateri imenujejo, delajo tudi po 18h?

inkanet ::

@sparc64

Tu lahko testiraš: http://kjur.github.io/jsrsasign/tool_jw...

@anarho

Meni se je JSON zdel veliko bolj enostaven in mi dela (echo in prijava prostora). Pošiljanje računov še nisem testiral, ker gre za podobno stvar kot prijava prostora ne bi smelo biti težav. Uporabljam JS z gornje povezave.

@Tech2k

Ne, postopek je naslednji:

1. base64url(JWS Header)
2. base64url(JWS Payload)
3. base64url( SHA256 podpis (JWS Header + JWS Payload) )
4. Sestaviš JWS Token

{ "token": " + Točka1 + . + Točka2 + . + Točka3 + "}

Sparc64 ::

inkanet je izjavil:

@sparc64

Tu lahko testiraš: http://kjur.github.io/jsrsasign/tool_jw...

@anarho

Meni se je JSON zdel veliko bolj enostaven in mi dela (echo in prijava prostora). Pošiljanje računov še nisem testiral, ker gre za podobno stvar kot prijava prostora ne bi smelo biti težav. Uporabljam JS z gornje povezave.

@Tech2k

Ne, postopek je naslednji:

1. base64url(JWS Header)
2. base64url(JWS Payload)
3. base64url( SHA256 podpis (JWS Header + JWS Payload) )
4. Sestaviš JWS Token

{ "token": " + Točka1 + . + Točka2 + . + Točka3 + "}


Tudi meni dela JSON pošiljanje in tudi sprejmem njihov token, vendar ga nikakor ne morem verificirati. x5c vrednost je binarno enaka tistemu certifikatu, ki ga imajo na spletni strani, vendar verifikacija vedno pade. Je tebi to uspelo, in če, kako?

Sparc64 ::

Tudi meni dela JSON pošiljanje in tudi sprejmem njihov token, vendar ga nikakor ne morem verificirati. x5c vrednost je binarno enaka tistemu certifikatu, ki ga imajo na spletni strani, vendar verifikacija vedno pade. Je tebi to uspelo, in če, kako?
Verifikacija mi sigurno pravilno deluje, saj če tisti token, ki ga sam pošljem proti FURSu, preverim z derivatom javnega ključa iz privatnega, verifikacija gre skozi. PEM oblika teh dveh javnih ključev, se pravi tistega, ki ga dobiš iz certifikata zapisanega v x5c, je slična. Sedaj pa nisem siguren, ali je na moji strani kaj narobe, ali ta strežnik podpisuje nekaj po svoje.

Zgodovina sprememb…

  • spremenilo: Sparc64 ()

Tech2k ::

Meni sedaj deluje pošiljanje, vendar imam enak problem kot Sparc64, ne dela verifikacija odgovora. Ista koda za varifikacijo ki deluje pri pošiljanju samo drug cert. Ni mi pa jasno zakaj v header tišijo certifikat, ali se bo uporabljal v produkciji?

Ali komu deluje JWT v celoti?

anarho ::

inkanet je izjavil:

@sparc64

@anarho

Meni se je JSON zdel veliko bolj enostaven in mi dela (echo in prijava prostora). Pošiljanje računov še nisem testiral, ker gre za podobno stvar kot prijava prostora ne bi smelo biti težav. Uporabljam JS z gornje povezave.


tudi meni se zdi enostaven pa v tokenu responsa (po base64 dekodiranju payloada seveda) dobim napako S100 :S

inkanet je izjavil:

@sparc64
Ne, postopek je naslednji:

1. base64url(JWS Header)
2. base64url(JWS Payload)
3. base64url( SHA256 podpis (JWS Header + JWS Payload) )
4. Sestaviš JWS Token

{ "token": " + Točka1 + . + Točka2 + . + Točka3 + "}


Pravzaprav tocka 1 in tocka 3 zgledata malce drugace glede na standard podpisovanja ... popravi me ce se motim
1. BASE64URL(UTF8(JWS Header))
3. BASE64URL(UTF8(SHA256 podpis(tocka1 + "." + tocka2))

Sparc64 ::

Sedaj sem dobil mail od FURSa, in sicer:
"Spoštovani,

Napaka je bila na Furs strani, podpisovali smo za napačnim zasebnim ključem. Poskusite ponovno in sporočite povratno informacijo.

Lep pozdrav, MM."

Sedaj dela tudi verifikacija JWT.

theanswer3 ::

Glupi XP-ji ;((

Chuck Borris ::

Ok, očitno imamo vsi oz. velika večina težave z oddajo na WinXp OS.

Do sedaj sem bil prepričan, da je nujno imeti vsaj .Net 4.0.
(tale ukaz mi v .Net 3.5 ne deluje: CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), "http://www.w3.org/2001/04/xmldsig-more#... )
Če torej hočeš imet .Net 4.0 na WinXP, potem je nujno imet SP3.
VIR: http://stackoverflow.com/questions/3142...

No.. kljub namestitvi .Net 4.0 na WinXp SP3, zadeva še vedno ne dela:
Exception: The underlying connection was closed: An unexpected error occurred on a send.
Inner exception: Received an unexpected EOF or 0 bytes from the transport stream.

Tech2k ::

Sparc64 je izjavil:

Sedaj sem dobil mail od FURSa, in sicer:
"Spoštovani,

Napaka je bila na Furs strani, podpisovali smo za napačnim zasebnim ključem. Poskusite ponovno in sporočite povratno informacijo.

Lep pozdrav, MM."

Sedaj dela tudi verifikacija JWT.


Damn to pa so kekci ne moreš verjet, jaz nej se pa kle jebam zakaj ne dela.

DamijanD ::

Chuck Borris je izjavil:

Ok, očitno imamo vsi oz. velika večina težave z oddajo na WinXp OS.

Do sedaj sem bil prepričan, da je nujno imeti vsaj .Net 4.0.
(tale ukaz mi v .Net 3.5 ne deluje: CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), "http://www.w3.org/2001/04/xmldsig-more#... )
Če torej hočeš imet .Net 4.0 na WinXP, potem je nujno imet SP3.
VIR: http://stackoverflow.com/questions/3142...

No.. kljub namestitvi .Net 4.0 na WinXp SP3, zadeva še vedno ne dela:
Exception: The underlying connection was closed: An unexpected error occurred on a send.
Inner exception: Received an unexpected EOF or 0 bytes from the transport stream.


Očitno sva na istem (tudi jaz bi rad zadevo usposobil z .net 3.5)- glede CryptoConfig.AddAlgorithm lahko uporabiš CryptoConfig2.AddAlgorithm (http://clrsecurity.codeplex.com/) ampak meni ne deluje :'( - javi mi
Additional information: Alias 'http://www.w3.org/2001/04/xmldsig-more#... already exists in the CryptoConfig2 map.
Brez pa itak, da ne dela (SignatureDescription could not be created for the signature algorithm supplied.)

beno95 ::

theanswer3 je izjavil:

Ok še eno vprašanje. Se komu svita kako se generira MessageID oziroma kaj pač pomenijo te cifre.


V XSD kolobociji http://www.datoteke.fu.gov.si/dpr/files... so zapisali kakšen mora biti "pattern value"
Torej mora biti MessageID take oblike: 12345678-1234-1234-1234-1234567890ab

Zgodovina sprememb…

  • spremenilo: beno95 ()

pix ::

Stepox je izjavil:

PrimozHisof je izjavil:

Kar se tiče Tls 1.0 in Windows XP povezava še vedno ne deluje.
Deluje, če uporabljaš Tls 1.0 na Windows 7 ali 8. Očitno je Framework 4.0 le premalo.

Framework 4.0 je dovolj. Za Windows XP pa je potrebno da namestiš "Cipher suite - KB3055973", dobiš pa ga tule https://www.microsoft.com/en-us/downloa... , doda ti nove AES standarde.
Sicer je namenjen Windows Posready 2009 ampak gre lepo tudi na ostale Windows XP serije.
Preverjeno pošiljanje deluje na Windows Posready 2009.

to se da na xpje dobit tako, da se to vnese v register:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\WPA\PosReady]
"Installed"=dword:00000001

pol pa delajo posodobitve od POSready, če komu kaj pomaga.

inkanet ::

@anarho

tudi meni se zdi enostaven pa v tokenu responsa (po base64 dekodiranju payloada seveda) dobim napako S100 :S


Sam sem imel podobne težave. Mislim da je bil kriv presledek ali ena prazna vrstica pred token-om. Najlažje je če štartaš z njihovim primerom in potem spreminjaš parametre (BusinessPremiseID ...)

Pravzaprav tocka 1 in tocka 3 zgledata malce drugace glede na standard podpisovanja ... popravi me ce se motim
1. BASE64URL(UTF8(JWS Header))
3. BASE64URL(UTF8(SHA256 podpis(tocka1 + "." + tocka2))


Se nisem poglabljal, ker kličem funkcijo v JS ki izvede sama vse korake (od točke 1. do 4.) in poskrbi za pravilen podpis. Za parametre ji dam ključ, Payload in Header v tekstovni obliki, vrnjen rezultat je veljaven JWS token.

Zgodovina sprememb…

  • spremenilo: inkanet ()

Sparc64 ::

Tech2k je izjavil:

Sparc64 je izjavil:

Sedaj sem dobil mail od FURSa, in sicer:
"Spoštovani,

Napaka je bila na Furs strani, podpisovali smo za napačnim zasebnim ključem. Poskusite ponovno in sporočite povratno informacijo.

Lep pozdrav, MM."

Sedaj dela tudi verifikacija JWT.


Damn to pa so kekci ne moreš verjet, jaz nej se pa kle jebam zakaj ne dela.


I feel you bro. Jaz sem tudi 3 dni probaval vse živo, na koncu pa je to njihova napaka. Ti serverji bi vsaj mogli bit potestirani, da lahko v miru razvijaš, ne pa da jim testiraš opremo.

Chuck Borris ::

pix je izjavil:

Stepox je izjavil:

PrimozHisof je izjavil:

Kar se tiče Tls 1.0 in Windows XP povezava še vedno ne deluje.
Deluje, če uporabljaš Tls 1.0 na Windows 7 ali 8. Očitno je Framework 4.0 le premalo.

Framework 4.0 je dovolj. Za Windows XP pa je potrebno da namestiš "Cipher suite - KB3055973", dobiš pa ga tule https://www.microsoft.com/en-us/downloa... , doda ti nove AES standarde.
Sicer je namenjen Windows Posready 2009 ampak gre lepo tudi na ostale Windows XP serije.
Preverjeno pošiljanje deluje na Windows Posready 2009.

to se da na xpje dobit tako, da se to vnese v register:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\WPA\PosReady]
"Installed"=dword:00000001

pol pa delajo posodobitve od POSready, če komu kaj pomaga.


@pix: Hvala! Deluje!
««
3 / 27
»»


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Davčne blagajne - PHP

Oddelek: Programiranje
115723 (769) vsepocenv
»

C# davčno potrjevanje

Oddelek: Programiranje
163224 (2693) windigo
»

E-račun

Oddelek: Programiranje
216423 (3186) ivanhoe5x
»

PHP davčna blagajna

Oddelek: Programiranje
186378 (4402) brble
»

[JAVA] HTTPS client

Oddelek: Programiranje
172698 (1428) peterv6i

Več podobnih tem