-
1. Data: 2011-01-03 18:42:25
Temat: XML i SignatureValue
Od: "Rafal\(sxat\)" <g...@u...to.op.pl>
Witam,
czy zna ktoś jakaś fajną klasę do PHP aby wyliczyć sygnaturę podpisu
elektronicznego dla pliku XML - bo nie mogę znalezc nic na podstawie
których danych wyliczyć tą sygnaturę
o ile digestValue wylicza się o zawartość pliku - o tyle nie wiem na
podstawie czego wyliczyć signatureValue - w PHP mam openssl_sign i
niby ta funkcja powinna wystarczyć ale jakie co podać jej za parametr
data aby otrzymać prawidłową sygnaturkę?
Rf
-
2. Data: 2011-01-03 20:32:46
Temat: Re: XML i SignatureValue
Od: Marcin Kral <k...@p...na.onecie>
W dniu 2011-01-03 19:42, Rafal(sxat) pisze:
> o ile digestValue wylicza się o zawartość pliku - o tyle nie wiem na
> podstawie czego wyliczyć signatureValue - w PHP mam openssl_sign i
> niby ta funkcja powinna wystarczyć ale jakie co podać jej za parametr
> data aby otrzymać prawidłową sygnaturkę?
a zakodowales w base64? ds:SignatureValue ma byc w base64.
Dokumentacje dla XAdES znajdziesz tutaj:
uri.etsi.org/01903/v1.2.2/ts_101903v010202p.pdf
--
Pozdrawiam
Marcin Kral
-
3. Data: 2011-01-03 22:34:39
Temat: Re: XML i SignatureValue
Od: "Rafal\(sxat\)" <g...@o...pl.usun.to>
>
> Dokumentacje dla XAdES znajdziesz tutaj:
> uri.etsi.org/01903/v1.2.2/ts_101903v010202p.pdf
>
> --
> Pozdrawiam
> Marcin Kral
> a zakodowales w base64? ds:SignatureValue ma byc w base64.
mam tak:
<dane>jakis test</dane>
na tym pliku wykonuje sha1 - i po zakodowaniu w base64 wychodzi taki sam jak w
programie dostarczonym do karty z podpisem...
i wtedy mam DigestValue - który jest poprawny, teraz to powinienem podpisać kluczem
ale za piernika nie znalazlem jednoznaczenie co mam podać jako dane wejsciowe do
funkcji openssl_sign aby wygenerować prawidłową sygnaturę i czy wogole openssl_sign
się do tego nadaje - bo wszystkie próby generują inna sygnaturę nie rozpoznawaną
przez programu do podpisu
Rafal
-
4. Data: 2011-01-03 22:56:36
Temat: Re: XML i SignatureValue
Od: Marcin Kral <k...@p...na.onecie>
W dniu 2011-01-03 23:34, Rafal(sxat) pisze:
>
> <dane>jakis test</dane>
>
> na tym pliku wykonuje sha1 - i po zakodowaniu w base64 wychodzi taki sam jak w
programie dostarczonym do karty z podpisem...
> i wtedy mam DigestValue - który jest poprawny, teraz to powinienem podpisać kluczem
>
> ale za piernika nie znalazlem jednoznaczenie co mam podać jako dane wejsciowe do
funkcji openssl_sign aby wygenerować prawidłową sygnaturę i czy wogole openssl_sign
się do tego nadaje - bo wszystkie próby generują inna sygnaturę nie rozpoznawaną
przez programu do podpisu
Plik XAdES sklada sie z kilku sekcji, te sekcje tez zawieraja swoje
"podpisy". AFAIK za dane wejsciowe podajesz to co masz w
<ds:SignedInfo>, wyjscie kodujesz w base64.
Sugeruje zerknac w tego PDF-a, ktorego linkowalem wczesniej.
--
Pozdrawiam
Marcin Kral
-
5. Data: 2011-01-04 01:39:44
Temat: Re: XML i SignatureValue
Od: "Rafal\(sxat\)" <g...@u...to.op.pl>
> <ds:SignedInfo>, wyjscie kodujesz w base64.
>
> Sugeruje zerknac w tego PDF-a, ktorego linkowalem wczesniej.
ciągle podawałem na upartego zły ciąg do podpisu... az mnie
natchneło... ;)
już działa dziękuje...
Pozdrawiam
Rafał
-
6. Data: 2011-01-04 01:50:26
Temat: Re: XML i SignatureValue
Od: "Rafal\(sxat\)" <g...@u...to.op.pl>
> <ds:SignedInfo>, wyjscie kodujesz w base64.
mam plik:
<dane>jakis test</dane>
na tym wykonuje skrót i generuje signedInfo:
wartość skrótu pokrywa mi się z programem do podpisu elektronicznego
następnie generuję sobie to poniższe:
<SignedInfo>
<CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20
010315" />
<SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha
1" />
<Reference URI="">
<Transforms>
<Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#envelop
ed-signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>lzJ7DxBcfCBSVm9rXEUdWh8tNp8=</DigestVal
ue>
</Reference>
</SignedInfo>
i przesyłam ten plik do podpisu przez openssl_sign a w odpowiedzi
dostaje sygnaturę która koduję base64
lecz nie przechodzi validacji w zewnetrznym programie od podpisu
elektronicznego
i nie wiem gdzie szukać błędów - usunołem wszystkie białe znaki ale
dalej ten sam problem
i teraz nie wiem czy openssl_sign się do tego nadaje, ewentualnie co
robię zle
Rf
-
7. Data: 2011-01-04 01:51:45
Temat: Re: XML i SignatureValue
Od: "Rafal\(sxat\)" <g...@u...to.op.pl>
> ciągle podawałem na upartego zły ciąg do podpisu... az mnie
> natchneło... ;)
> już działa dziękuje...
kurde - nie działa - zbyt wcześnie się ucieszyłem...
-
8. Data: 2011-01-04 09:34:30
Temat: Re: XML i SignatureValue
Od: Marcin Kral <k...@p...na.onecie>
W dniu 2011-01-04 02:50, Rafal(sxat) pisze:
>
> i przesyłam ten plik do podpisu przez openssl_sign a w odpowiedzi
> dostaje sygnaturę która koduję base64
> lecz nie przechodzi validacji w zewnetrznym programie od podpisu
> elektronicznego
Jaki blad walidacji konkretnie dostajesz? Jesli mozesz wystaw gdzies
kompletny plik podpisu.
> i nie wiem gdzie szukać błędów - usunołem wszystkie białe znaki ale
> dalej ten sam problem
> i teraz nie wiem czy openssl_sign się do tego nadaje, ewentualnie co
> robię zle
Primo pisalem to dosc dawno i nie w PHP ale wyglada, ze ktos mial
podobny problem:
http://stackoverflow.com/questions/2699338/phps-open
ssl-sign-generates-different-signature-than-sscrypto
s-sign
Generalnie openssl_sing powinien zwrocic Ci to samo co openssl -dgst ...
--
Pozdrawiam
Marcin Kral
-
9. Data: 2011-01-04 09:50:00
Temat: Re: XML i SignatureValue
Od: Marcin Kral <k...@p...na.onecie>
W dniu 2011-01-04 10:34, Marcin Kral pisze:
> W dniu 2011-01-04 02:50, Rafal(sxat) pisze:
>>
>> i przesyłam ten plik do podpisu przez openssl_sign a w odpowiedzi
>> dostaje sygnaturę która koduję base64
>> lecz nie przechodzi validacji w zewnetrznym programie od podpisu
>> elektronicznego
>
> Jaki blad walidacji konkretnie dostajesz? Jesli mozesz wystaw gdzies
> kompletny plik podpisu.
>
>> i nie wiem gdzie szukać błędów - usunołem wszystkie białe znaki ale
>> dalej ten sam problem
>> i teraz nie wiem czy openssl_sign się do tego nadaje, ewentualnie co
>> robię zle
>
> Primo pisalem to dosc dawno i nie w PHP ale wyglada, ze ktos mial
> podobny problem:
> http://stackoverflow.com/questions/2699338/phps-open
ssl-sign-generates-different-signature-than-sscrypto
s-sign
>
>
> Generalnie openssl_sing powinien zwrocic Ci to samo co openssl -dgst ...
Za wczesnie wyslalem:
openssl dgst -sha-1 -sign private_key SignedInfoXML
pownno zwrocic to samo co openssl_sign w PHP, i to powinno znalezc sie w
ds:SignatureValue (po zakodowaniu w base64)
Wystaw gdzies ten plik podpisu, jak bede mial chwile to zerkne.
--
Pozdrawiam
Marcin Kral
-
10. Data: 2011-01-04 11:37:54
Temat: Re: XML i SignatureValue
Od: "Rafal\(sxat\)" <g...@u...to.op.pl>
>
> Wystaw gdzies ten plik podpisu, jak bede mial chwile to zerkne.
http://sendfile.pl/39779/signtest.zip
ciągle dostaje inne sygnatury... plik signedinfo.xml to ten plik
ktory podpisuje
plik a_signed_wzorzec.xml to plik który został podpisany przez
zewnetrzny program XML Signer
Rafal