MacOS - Podpisywanie na stronie

Podziękowanie

Stworzenie poniższej instrukcji nie było by możliwe, gdyby nie skrypty udostępnione przez foxlet, pozwiliły mi one na przygotowanie systemu testowego z MacOS.

Środowisko

Wersja systemu

Testowałem uruchomienie na systemie Mojave (10.14.4).

Java

Podpisywanie dokumentów wykonywane jest przez komponent uruchamiany w Javie w wersji 8. Java dostępna na stronach firmy Oracle ma licencję zezwalającą na wykorzystywanie jej do użytku prywatnego i tworzenia oprogramowania. Z tego powodu zainstalowałem Javę ze strony firmy Azul.

Firefox

Komponent Szafir SDK współpracuje z przeglągarkami Firefox i Chrome, ja testowałem na przeglądarce Firefox pobranej ze strony fundacji Mozilla.

Instalacja komponentu szafir.

Po zainstalowaniu Javy i Firefoxa, uruchamiam Firefoxa i otwieram stronę GIIF. Instalacja zacznie się przy próbie podpisania pierwszego dokumentu, najprostszym dokumentem jaki można przygotować na stronie, jest żądanie rejestracji o rejestracji certyfikatu. Nie będę wysyłał tego żądania, ale muszę podać numer mający poprawną sumę kontrolną numeru NIP, użyję numeru 0123456789.

Instalacja rozszerzenia

Po kliknięciu „Podpisz i wyślij” pojawi się dialog instalacji rozszerzenia.

Następnie Firefox będzie upewniał się, że na pewno chcemy zainstalować to rozszerzenie.

I w końcu pokaże się informacja o dodaniu rozszerzenia.

Instalacja SzafirHost

Wracamy na stronę GIIF i ponawiamy żądanie dodania certyfikatu.

Tym razem pojawi się dialog proponujący instalację programu SzafirHost.

Tutaj wybieramy „Pobierz Szafir Host dla Linux/OSX” i zapisujemy do folderu Downloads.

Niestety przy próbie instalacji pobranego pliku czeka nas przykra niespodzianka, system nie dopuszcza instalacji niepodpisanych programów.

Obejście problemu niepodpisanego instalatora

Na szczęście poniższy problem możemy obejść, w tym celu uruchamiamy terminal.

I wydajemy kilka komend.

Komenty do kolejno:

1
java -version

Sprawdza, którą wersję Javy mamy zainstalowaną. Jeżeli jest to wersja 1.8.0_xxx to możemy przejść dalej w przeciwnym wypadku trzeba zainstalować Javę.

1
cd

Zmienia katalog roboczy na katalog domowy użytkownika.

1
ls

Wyśwetla pliki i katalogi użytkownika, jeden z nich powinien mieć nazwę Downloads. Jeśli nie to poszukaj katalogu o zbliżonej nazwie (może Pobrane).

1
cd Downloads

Zmienia katalog roboczy na katalog Downloads.

1
ls *.jar

Wyświetla wszystkie pliki o nazwie kończącej się na .jar w katalogu roboczym (Downloads). Wśród nich powinien znajdować się szafirhost-install.jar

1
shasum szafirhost-install.jar

Oblicza sumę kontrolną pliku szafirhost-install.jar, dla wersji 1.0.7 aktualnej w chwili przygotowania tego dokumentu było to: 633ef3819285f85beb0068bca1adc4de5f7d96c1. Jeśli suma kontrolna jest inna, to skontaktuj się z GIIFem aby upewnić się, czy zmiana jest celowa, czy też padłeś ofiarą wirusa.

1
java -jar szafirhost-install.jar

Uruchamia instalator szafirhost-install.jar.

Po uruchomieniu na konsoli pojawi się kilka mało istotnych wyjątków, ale na ekranie powinien pojawić się poniższy dialog.

Instalator SzafirHost

Po przeklikaniu się przez EULA (End User License Agreement) dochodzimy do wyboru katalogu docelowe, który pozostawiamy bez zmian.

Pozostawiamy katalog /Applications/SzafirHost i przechodzimy dalej. Następnie okienko potwierdzenia katalogu docelowego.

Jeszcze wybór składników instalacji w którym nic nie zmieniamy.

Teraz właściwa instalacja.

I zakończenie instlacji.

Uruchomienie podpisywania

Wracamy na stronę GIIF i ponawiamy żądanie dodania certyfikatu.

Tym razem powinno pojawić się okno pobierania komponentów SzafirSDK.

Komponenty zostaną pobrane do katalogu tymczasowego. Następnie pojawi się okienko podpisu.

Po wybraniu „Sign” lub „Podpisz” pokaże się pytanie o PIN.

Po podaniu PIN pojawi się potwierdzenie prawidłowego podpisania.

Kliknięcie na „Finish” lub „Zakończ” zwraca podpisany dokument do przeglądarki, a ta wysyła dokument to GIIFa.

Powyższy błąd jest oczekiwany, NIP użyty do testów jest fikcyjny, a w systemie produkcyjnym nie ma instytucji o takim NIPie.

Nowa binarka walidatora

Walidator wersja 2.0.2 do pobrania na stronie.

Poprawiono błąd:

pl.gov.mofnet.giif.xml2019.transakcje.wymiana.KartaTransakcji is not known to this context

Walidator jest oparty na tych samych źródłach co walidatory działające w systemie testowym i produkcyjnym 19 czerwca 2019r.

Walidator jeszcze przyjmuje transakcje z namespace’ami z 2018 roku, Zostanie to wyłączone dopiero w wersji która pojawi się po wyłączeniu przyjmowania takich transakcji przez system produkcyjny.

Zmiany we wzorach dokumentów elektronicznych

Zmiany we wzorach dokumentów elektronicznych

Po uwagach od instytucji obowiązanych dotyczących formatów danych wprowadzono zmiany we wzorach dokumentów elektronicznych.

Komunikat GIIF

We wszystkich wzorach dokumentów wykazów transakcji:

  1. W elemencie Dokument dodano atrybut dataKorekty. Jego wypełnienie jest obowiązkowe, jeżeli atrybut korekta jest ustawiony na true. System wymaga aby każda korekta miała unikalną datę, system przyjmuje, że najbardziej aktualne dane są w korekcie o najnowszej dacie.
  2. W elemencie Dokument zmiana atrybutu ‘nipIO’ z opcjonalnego na obowiązkowy.
  3. Umożliwiono podawanie wielu osób upoważnionych dla osoby fizycznej lub osoby prawnej.

Transakcja gotówkowa

Nowy namespace http://crd.gov.pl/wzor/2019/06/11/7925/, wprowadza następujące zmiany:

Dodano w opcjonalne elementy KwotaPoPrzewalutowaniuTr i KodWalutyPoPrzewalutowaniuTr. Pozwalają one na przekazanie danych o transakcji gotówkowej z przewalutowaniem. W odróżnieniu od transakcji wymiany, w transakcji gotówkowej można wskazać dane beneficjenta. W odróżnieniu od transakcji transferu, nie są wymagane numery kont.

Dla transakcji wypłaty, umożliwiono podanie osoby upoważnionej dla beneficjenta. Dla transakcji wypłaty, jeżeli beneficjent jest osobą prawną, wskazanie osoby upoważnionej jest obowiązkowe (wymusza to walidator).

Transakcja wymiany

Nowy namespace http://crd.gov.pl/wzor/2019/06/11/7926/.

Transakcja transferu

Nowy namespace http://crd.gov.pl/wzor/2019/06/11/7927/.

Transakcja notarialna

Nowy namespace http://crd.gov.pl/wzor/2019/06/11/7924/.

Dla podmiotów biorących udział w transakcji atrybut charakterPodmiotu stał się obowiązkowy.

Implementacja zmian

System testowy NIE przyjmuje danych według wzorów z 2018 roku.

System produkcyjny przyjmuje już dane według wzorów z 2019 roku i w ciągu kilku dni przestanie przyjmować dane według wzorów z 2018 roku.

Nieformalny opis zmian.

  1. Należy zmienić namespace dla każdego z generowanych plików wykazu transakcji.
  2. Walidator już wcześniej wymuszał wypełnienie atrybutu nipIO, żadne zmiany nie są konieczne.
  3. Data Korekty może być datą modyfikacji rekordu zawierającego dane transakcji/podmiotu w bazie instytucji, lub datą generowania pliku pliku z wykazem transakcji.
  4. Zmiana w osobach upoważnionych polega jedynie na umożliwieniu przekazania wielu osób upoważnionych dla podmiotu transakcji. Kod generujący jedną osobę upowanioną powinien działać bez zmian.
  5. Elementy obsługujące przewalutowanie transakcji gotówkowej są opcjonalne, dla transakcji bez przewalutowania kod generujący plik wykazu transakcji powinien działać bez zmian.
  6. Walidator już wcześniej wymuszał wypełnienie atrybutu charakterPodmiotu w transakcji notarialnej, żadne zmiany nie są konieczne.

Zmiany w walidacji plików

Dodano walidację unikalności transakcji.

System odrzuci pliki, w których znajdą się transakcje pierwotne mające taki sam atrybut nipIO i wartość elementu IdentyfikatorTr jak transakcje wcześniej przekazane do systemu.

System odrzuci pliki, w których znajdą się korekty, dla których w systemie brakuje transakcji pierwotnych.

System odrzuci pliki, w których znajdą się korekty mające takie same wartości atrybutów nipIO i dataKorekty, oraz wartość elementu IdentyfikatorTr jak korekty wcześniej przekazane do systemu.

Zmiany w walidatorze

Problem

Niektóre biblioteki generujące XML i tworzą puste tagi, tam gdzie nie przekazano wartości.

1
2
3
4
5
6
7
8
<ZleceniodawcaOsobaFizyczna>
<OsFizycznaKlientIO>
<t:ImiePierwsze>tester</t:ImiePierwsze>
<t:ImieDrugie></t:ImieDrugie>
<t:Nazwisko>testowy</t:Nazwisko>
...
</OsFizycznaKlientIO>
</ZleceniodawcaOsobaFizyczna>

Proszę zwrócić uwagę na tag t:ImieDrugie. Dotychczas powodowało to błąd walidacji:

1
2
3
4
5
6
7
{
"położenieKarty": "Dokument/TrescDokumentu/Karta",
"aktualnaKarta": "jakiś numer",
"położenieBłędu": "TrZlecanaPrzezKlienta/ZleceniodawcaOsobaFizyczna/OsFizycznaKlientIO",
"komunikat": "Drugie imię może być puste.",
"dotyczyTagów": "ImieDrugie"
}

Wprowadzone zmiany

Poprawiono literówkę.

Poprawiono literówkę, w komunikacie omyłkowo pominięto partykułę „nie”.

Dopuszczono użycie pustego napisu w polach nieobowiązkowych.

W polach nieobowiązkowych o zawartości tekstowej dopuszczono wstawienie pustej wartości. Obecnie wstawienie nieobowiązkowego tagu, takiego jak ImieDrugie, zawierającego wartość pustą, lub same spacje, jest równoważne pominięciu tego pola.

Dodatkowe zmiany w walidatorze:

NPE na KodPocztowy

Dla pewnych przypadków kodu pocztowego, walidator zwracał błąd NullPointerException.

Błędne wymuszenie obowiązkowości na polach PESEL/DataUrodzenia.

Walidator wymuszał obowiązkowość pól PESEL lub DataUrodzenia, dla danych pełnych osoby fizycznej uproszczonej (np. beneficjenta transakcji).

Błąd StreamType.OTHER dla kart transakcji

W trakcie przetwarzania kart transakcji często pojawia się błąd:

Przesłany plik typu: OTHER nie został rozpoznany jako plik wykazu transakcji.

lub:

Przesłany plik typu: ZIP_STREAM nie został rozpoznany jako plik wykazu transakcji.

Jest on wyrzucany w trakcie walidacji karty transakcji. Backend który deszyfruje pliki kart transakcji, jest wyposażony w mechanizm rozpoznawania typu pliku na podstawie początku pliku.

Mechanizm ten potrafi rozpoznać między innymi pliki:

  • CMS Enveloped (dane zaszyfrowane, OID.1.2.840.113549.1.7.3),
  • CMS Compressed (dane skompresowane zgodnie z PKCS#9, OID.1.2.840.113549.1.9.16.1.9),
  • CMS Signed (dane podpisane, OID.1.2.840.113549.1.7.2),
  • Oba formaty wykazu transakcji ze starej ustawy.
  • Formaty XML wykazu transakcji i rejestracji instytucji z nowej ustawy.
  • Plik ZIP.

Typ OTHER

Długość pierwszego tagu

Rozróżnianie plików XML odbywa się na podstawie pierwszego tagu w dokumencie. Aby rozpoznanie pliku powiodło się, początek pliku, wraz z jego zamykającym znakiem ‘>’ musi zmieścić się w buforze, jeśli nie zmieści się, to plik zostanie oznaczony jako typ OTHER (nierozpoznany).

Do południa 29 kwietnia, bufor miał 256 bajtów. To wystarczało dla plików generowanych przez stronę WWW, jednakże było to za mało gdy w pierwszym tagu znalazły się odwołania do xsi:schemaLocation.

Od południa 29 kwietnia, w systemie testowym, bufor został powiększony do 2048 bajtów, zmiana zostanie wdrożona w systemie produkcyjnym dopiero po majowym weekendzie.

Podsumowując:

Tag otwierający Dokument w pliku wykazu transakcji musi być zamknięty nie później niż w 2048 bajcie pliku.

Atrybut nipIO

Mechanizm rozpoznawania typu pliku, sprawdza również wartość w atrybucie nipIO kart transakcji, jeżeli ta wartość nie pasuje do wyrażenia regularnego ^\d{10}$ lub suma kontrolna numeru NIP nie waliduje się to plik jest oznaczany jako typ OTHER.

Typ ZIP_STREAM

Szafir SDK ma opcję kompresji danych. Po jej włączeniu podpisany plik CAdES jest pakowany w archiwum ZIP (przed zaszyfrowaniem go). System SI*GIIF obsługuje kompresję zgodną z RFC-3274, ZIP takim formatem nie jest.

Brak ważnego podpisu.

Jeden z programistów przygotowujących aplikację do przesyłania danych do GIIF zwrócił nam uwagę, na plik który po przesłaniu do MF zwraca błąd: 401 „Brak ważnego podpisu.” pomimo, że ten sam plik waliduje się w oprogramowaniu KIR Szafir i Certum SmartSign.

Aby przeanalizować problem stworzyłem dodatkowe wywołanie w systemie testowym:

1
2
3
curl --data-binary @plik.sig \
-H 'Content-Type: application/binary' \
https://test.giif.mofnet.gov.pl/api/rest2018/validate/

Po wywołaniu otrzymałem poniższą odpowiedź (skroconą dla ochrony danych osobowych), nie trzeba się w nią wgłębiać zamieszczam ją wyłącznie dla zilustrowania czego spodziewać się po wywołaniu:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
----------------Diagnostic data-----------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DiagnosticData xmlns="http://dss.esig.europa.eu/validation/diagnostic">
<DocumentName></DocumentName>
<ValidationDate>2019-04-16T08:34:14</ValidationDate>
<Signatures>
<Signature Id="id-0d5c90b084135f343a2314d0ea973930">
<SignatureFilename></SignatureFilename>
<SignatureFormat>CAdES-BASELINE-T</SignatureFormat>
<StructuralValidation>
<Valid>true</Valid>
</StructuralValidation>
<BasicSignature>
<EncryptionAlgoUsedToSignThisToken>RSA</EncryptionAlgoUsedToSignThisToken>
<KeyLengthUsedToSignThisToken>2048</KeyLengthUsedToSignThisToken>
<DigestAlgoUsedToSignThisToken>SHA256</DigestAlgoUsedToSignThisToken>
<ReferenceDataFound>true</ReferenceDataFound>
<ReferenceDataIntact>true</ReferenceDataIntact>
<SignatureIntact>true</SignatureIntact>
<SignatureValid>true</SignatureValid>
</BasicSignature>
<SigningCertificate Id="[...]">
<AttributePresent>true</AttributePresent>
<DigestValuePresent>true</DigestValuePresent>
<DigestValueMatch>true</DigestValueMatch>
<IssuerSerialMatch>true</IssuerSerialMatch>
</SigningCertificate>
<CertificateChain>
<ChainItem Id="[...]">
<Source>UNKNOWN</Source>
</ChainItem>
<ChainItem Id="ED380189EB280F5D86C914BFDD28D89795E5676AE893F3C3D75B12F3E42CC914">
<Source>TRUSTED_LIST</Source>
</ChainItem>
</CertificateChain>
<ContentType>1.2.840.113549.1.7.1</ContentType>
<CommitmentTypeIndication>
<Indication>1.2.840.113549.1.9.16.6.1</Indication>
<Indication>1.2.840.113549.1.9.16.6.6</Indication>
</CommitmentTypeIndication>
<ClaimedRoles/>
<Timestamps>
<Timestamp Id="9D07AB05D4AF83148F1EC8C0146F38F8F5771825617AEA270646B0E125B13087" Type="SIGNATURE_TIMESTAMP">
<ProductionTime>2019-04-15T12:02:50</ProductionTime>
<SignedDataDigestAlgo>SHA256</SignedDataDigestAlgo>
<EncodedSignedDataDigestValue>2HZ/upb0BvAmObWE/Yp9vUtQvPdi0VtRwS095U+3CEk=</EncodedSignedDataDigestValue>
<MessageImprintDataFound>true</MessageImprintDataFound>
<MessageImprintDataIntact>true</MessageImprintDataIntact>
<BasicSignature>
<EncryptionAlgoUsedToSignThisToken>RSA</EncryptionAlgoUsedToSignThisToken>
<KeyLengthUsedToSignThisToken>4096</KeyLengthUsedToSignThisToken>
<DigestAlgoUsedToSignThisToken>SHA256</DigestAlgoUsedToSignThisToken>
<ReferenceDataFound>true</ReferenceDataFound>
<ReferenceDataIntact>true</ReferenceDataIntact>
<SignatureIntact>true</SignatureIntact>
<SignatureValid>true</SignatureValid>
</BasicSignature>
<SigningCertificate Id="673BE8A1DA927DB63CCAB7CB3E7AC352DC3AEB6A8DA3E2A359CA158D0A440DB8"/>
<CertificateChain>
<ChainItem Id="673BE8A1DA927DB63CCAB7CB3E7AC352DC3AEB6A8DA3E2A359CA158D0A440DB8">
<Source>TRUSTED_LIST</Source>
</ChainItem>
</CertificateChain>
<TimestampedObjects>
<TimestampedObject Id="id-0d5c90b084135f343a2314d0ea973930" Category="SIGNATURE"/>
<TimestampedObject Category="CERTIFICATE">
<DigestAlgoAndValue>
<DigestMethod>SHA256</DigestMethod>
<DigestValue>D/J4sy7f7TeVRDOMFeybyext51PG/Gxoy7j3qDHUTyE=</DigestValue>
</DigestAlgoAndValue>
</TimestampedObject>
</TimestampedObjects>
</Timestamp>
</Timestamps>
<SignatureScopes>
<SignatureScope name="Full document" scope="FullSignatureScope">Full document</SignatureScope>
</SignatureScopes>
</Signature>
</Signatures>
<UsedCertificates>
<Certificate Id="ED380189EB280F5D86C914BFDD28D89795E5676AE893F3C3D75B12F3E42CC914">
<SubjectDistinguishedName Format="CANONICAL">2.5.4.97=#0c10564154504c2d35313730333539343538,cn=certum qca 2017,o=asseco data systems s.a.,c=pl</SubjectDistinguishedName>
<SubjectDistinguishedName Format="RFC2253">2.5.4.97=#0c10564154504c2d35313730333539343538,CN=Certum QCA 2017,O=Asseco Data Systems S.A.,C=PL</SubjectDistinguishedName>
<IssuerDistinguishedName Format="CANONICAL">2.5.4.97=#0c10564154504c2d35323530303038313938,cn=narodowe centrum certyfikacji,o=narodowy bank polski,c=pl</IssuerDistinguishedName>
<IssuerDistinguishedName Format="RFC2253">2.5.4.97=#0c10564154504c2d35323530303038313938,CN=Narodowe Centrum Certyfikacji,O=Narodowy Bank Polski,C=PL</IssuerDistinguishedName>
<SerialNumber>710871166242919768730898917567636976287103054975</SerialNumber>
<CommonName>Certum QCA 2017</CommonName>
<CountryName>PL</CountryName>
<OrganizationName>Asseco Data Systems S.A.</OrganizationName>
<AuthorityInformationAccessUrls/>
<CRLDistributionPoints/>
<OCSPAccessUrls/>
<DigestAlgoAndValues>
<DigestAlgoAndValue>
<DigestMethod>SHA256</DigestMethod>
<DigestValue>7TgBiesoD12GyRS/3SjYl5XlZ2rok/PD11sS8+QsyRQ=</DigestValue>
</DigestAlgoAndValue>
</DigestAlgoAndValues>
<NotAfter>2028-03-15T23:59:59</NotAfter>
<NotBefore>2017-03-15T10:17:34</NotBefore>
<PublicKeySize>4096</PublicKeySize>
<PublicKeyEncryptionAlgo>RSA</PublicKeyEncryptionAlgo>
<KeyUsageBits>
<KeyUsage>keyCertSign</KeyUsage>
<KeyUsage>crlSign</KeyUsage>
</KeyUsageBits>
<ExtendedKeyUsages/>
<IdPkixOcspNoCheck>false</IdPkixOcspNoCheck>
<BasicSignature>
<EncryptionAlgoUsedToSignThisToken>RSA</EncryptionAlgoUsedToSignThisToken>
<KeyLengthUsedToSignThisToken>?</KeyLengthUsedToSignThisToken>
<DigestAlgoUsedToSignThisToken>SHA512</DigestAlgoUsedToSignThisToken>
<ReferenceDataFound>true</ReferenceDataFound>
<ReferenceDataIntact>true</ReferenceDataIntact>
<SignatureIntact>true</SignatureIntact>
<SignatureValid>true</SignatureValid>
</BasicSignature>
<Trusted>true</Trusted>
<SelfSigned>false</SelfSigned>
<CertificatePolicies>
<certificatePolicy cpsUrl="www.nccert.pl">2.5.29.32.0</certificatePolicy>
</CertificatePolicies>
<QCStatementIds/>
<QCTypes/>
<TrustedServiceProviders>
<TrustedServiceProvider>
<TSPName>Asseco Data Systems S.A.</TSPName>
<TSPRegistrationIdentifier>VATPL-5170359458</TSPRegistrationIdentifier>
<CountryCode>PL</CountryCode>
<TrustedServices>
<TrustedService>
<ServiceName>Certification authority issuing qualified certificates</ServiceName>
<ServiceType>http://uri.etsi.org/TrstSvc/Svctype/CA/QC</ServiceType>
<Status>http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted</Status>
<StartDate>2017-09-25T12:00:00</StartDate>
<AdditionalServiceInfoUris>
<URI>http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/ForeSignatures</URI>
<URI>http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/ForeSeals</URI>
</AdditionalServiceInfoUris>
<ServiceSupplyPoints>
<URI>http://qca.crl.certum.pl/qca_2017.crl</URI>
</ServiceSupplyPoints>
</TrustedService>
<TrustedService>
<ServiceName>Certification authority issuing qualified certificates</ServiceName>
<ServiceType>http://uri.etsi.org/TrstSvc/Svctype/CA/QC</ServiceType>
<Status>http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted</Status>
<StartDate>2017-03-15T10:17:34</StartDate>
<EndDate>2017-09-25T12:00:00</EndDate>
<AdditionalServiceInfoUris>
<URI>http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/ForeSignatures</URI>
</AdditionalServiceInfoUris>
</TrustedService>
</TrustedServices>
</TrustedServiceProvider>
</TrustedServiceProviders>
<Info/>
<Base64Encoded>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</Base64Encoded>
</Certificate>
<Certificate Id="673BE8A1DA927DB63CCAB7CB3E7AC352DC3AEB6A8DA3E2A359CA158D0A440DB8">
<SubjectDistinguishedName Format="CANONICAL">2.5.4.97=#0c10564154504c2d35313730333539343538,cn=certum qtst 2017,o=asseco data systems s.a.,c=pl</SubjectDistinguishedName>
<SubjectDistinguishedName Format="RFC2253">2.5.4.97=#0c10564154504c2d35313730333539343538,CN=Certum QTST 2017,O=Asseco Data Systems S.A.,C=PL</SubjectDistinguishedName>
<IssuerDistinguishedName Format="CANONICAL">2.5.4.97=#0c10564154504c2d35323530303038313938,cn=narodowe centrum certyfikacji,o=narodowy bank polski,c=pl</IssuerDistinguishedName>
<IssuerDistinguishedName Format="RFC2253">2.5.4.97=#0c10564154504c2d35323530303038313938,CN=Narodowe Centrum Certyfikacji,O=Narodowy Bank Polski,C=PL</IssuerDistinguishedName>
<SerialNumber>100341102919473197820118384675833212695201296873</SerialNumber>
<CommonName>Certum QTST 2017</CommonName>
<CountryName>PL</CountryName>
<OrganizationName>Asseco Data Systems S.A.</OrganizationName>
<AuthorityInformationAccessUrls/>
<CRLDistributionPoints/>
<OCSPAccessUrls/>
<DigestAlgoAndValues>
<DigestAlgoAndValue>
<DigestMethod>SHA256</DigestMethod>
<DigestValue>ZzvoodqSfbY8yrfLPnrDUtw662qNo+KjWcoVjQpEDbg=</DigestValue>
</DigestAlgoAndValue>
</DigestAlgoAndValues>
<NotAfter>2028-03-15T23:59:59</NotAfter>
<NotBefore>2017-03-15T10:23:18</NotBefore>
<PublicKeySize>4096</PublicKeySize>
<PublicKeyEncryptionAlgo>RSA</PublicKeyEncryptionAlgo>
<KeyUsageBits>
<KeyUsage>nonRepudiation</KeyUsage>
<KeyUsage>digitalSignature</KeyUsage>
</KeyUsageBits>
<ExtendedKeyUsages>
<oid Description="timeStamping">1.3.6.1.5.5.7.3.8</oid>
</ExtendedKeyUsages>
<IdPkixOcspNoCheck>false</IdPkixOcspNoCheck>
<BasicSignature>
<EncryptionAlgoUsedToSignThisToken>RSA</EncryptionAlgoUsedToSignThisToken>
<KeyLengthUsedToSignThisToken>?</KeyLengthUsedToSignThisToken>
<DigestAlgoUsedToSignThisToken>SHA512</DigestAlgoUsedToSignThisToken>
<ReferenceDataFound>true</ReferenceDataFound>
<ReferenceDataIntact>true</ReferenceDataIntact>
<SignatureIntact>true</SignatureIntact>
<SignatureValid>true</SignatureValid>
</BasicSignature>
<Trusted>true</Trusted>
<SelfSigned>false</SelfSigned>
<CertificatePolicies>
<certificatePolicy cpsUrl="www.nccert.pl">2.5.29.32.0</certificatePolicy>
</CertificatePolicies>
<QCStatementIds/>
<QCTypes/>
<TrustedServiceProviders>
<TrustedServiceProvider>
<TSPName>Asseco Data Systems S.A.</TSPName>
<TSPRegistrationIdentifier>VATPL-5170359458</TSPRegistrationIdentifier>
<CountryCode>PL</CountryCode>
<TrustedServices>
<TrustedService>
<ServiceName>Time Stamping Authority</ServiceName>
<ServiceType>http://uri.etsi.org/TrstSvc/Svctype/TSA/QTST</ServiceType>
<Status>http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted</Status>
<StartDate>2017-03-15T10:23:18</StartDate>
</TrustedService>
</TrustedServices>
</TrustedServiceProvider>
</TrustedServiceProviders>
<Info/>
<Base64Encoded>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</Base64Encoded>
</Certificate>
<Certificate Id="0FF278B32EDFED379544338C15EC9BC9EC6DE753C6FC6C68CBB8F7A831D44F21">
<SubjectDistinguishedName Format="CANONICAL">[...]</SubjectDistinguishedName>
<SubjectDistinguishedName Format="RFC2253">[...]</SubjectDistinguishedName>
<IssuerDistinguishedName Format="CANONICAL">2.5.4.97=#0c10564154504c2d35313730333539343538,cn=certum qca 2017,o=asseco data systems s.a.,c=pl</IssuerDistinguishedName>
<IssuerDistinguishedName Format="RFC2253">2.5.4.97=#0c10564154504c2d35313730333539343538,CN=Certum QCA 2017,O=Asseco Data Systems S.A.,C=PL</IssuerDistinguishedName>
<SerialNumber>[...]</SerialNumber>
<CommonName>[...]</CommonName>
<CountryName>PL</CountryName>
<GivenName>[...]</GivenName>
<Surname>[...]</Surname>
<AuthorityInformationAccessUrls>
<Url>http://repository.certum.pl/qca_2017.cer</Url>
</AuthorityInformationAccessUrls>
<CRLDistributionPoints>
<Url>http://qca.crl.certum.pl/qca_2017.crl</Url>
</CRLDistributionPoints>
<OCSPAccessUrls>
<Url>http://qca-2017.qocsp-certum.com</Url>
</OCSPAccessUrls>
<DigestAlgoAndValues>
<DigestAlgoAndValue>
<DigestMethod>SHA256</DigestMethod>
<DigestValue>D/J4sy7f7TeVRDOMFeybyext51PG/Gxoy7j3qDHUTyE=</DigestValue>
</DigestAlgoAndValue>
</DigestAlgoAndValues>
<NotAfter>2021-02-10T22:14:08</NotAfter>
<NotBefore>2019-02-11T22:14:08</NotBefore>
<PublicKeySize>2048</PublicKeySize>
<PublicKeyEncryptionAlgo>RSA</PublicKeyEncryptionAlgo>
<KeyUsageBits>
<KeyUsage>nonRepudiation</KeyUsage>
<KeyUsage>digitalSignature</KeyUsage>
</KeyUsageBits>
<ExtendedKeyUsages/>
<IdPkixOcspNoCheck>false</IdPkixOcspNoCheck>
<BasicSignature>
<EncryptionAlgoUsedToSignThisToken>RSA</EncryptionAlgoUsedToSignThisToken>
<KeyLengthUsedToSignThisToken>4096</KeyLengthUsedToSignThisToken>
<DigestAlgoUsedToSignThisToken>SHA256</DigestAlgoUsedToSignThisToken>
<ReferenceDataFound>true</ReferenceDataFound>
<ReferenceDataIntact>true</ReferenceDataIntact>
<SignatureIntact>true</SignatureIntact>
<SignatureValid>true</SignatureValid>
</BasicSignature>
<SigningCertificate Id="ED380189EB280F5D86C914BFDD28D89795E5676AE893F3C3D75B12F3E42CC914"/>
<CertificateChain>
<ChainItem Id="ED380189EB280F5D86C914BFDD28D89795E5676AE893F3C3D75B12F3E42CC914">
<Source>TRUSTED_LIST</Source>
</ChainItem>
</CertificateChain>
<Trusted>false</Trusted>
<SelfSigned>false</SelfSigned>
<CertificatePolicies>
<certificatePolicy Description="qcp-natural-qscd">0.4.0.194112.1.2</certificatePolicy>
<certificatePolicy cpsUrl="http://www.certum.pl/repozytorium">1.2.616.1.113527.2.4.1.12.1</certificatePolicy>
</CertificatePolicies>
<QCStatementIds>
<oid Description="qc-compliance">0.4.0.1862.1.1</oid>
<oid Description="qc-sscd">0.4.0.1862.1.4</oid>
<oid Description="qc-pds">0.4.0.1862.1.5</oid>
<oid>0.4.0.1862.1.6</oid>
</QCStatementIds>
<QCTypes>
<oid Description="qc-type-esign">0.4.0.1862.1.6.1</oid>
</QCTypes>
<TrustedServiceProviders>
<TrustedServiceProvider>
<TSPName>Asseco Data Systems S.A.</TSPName>
<TSPRegistrationIdentifier>VATPL-5170359458</TSPRegistrationIdentifier>
<CountryCode>PL</CountryCode>
<TrustedServices>
<TrustedService>
<ServiceName>Certification authority issuing qualified certificates</ServiceName>
<ServiceType>http://uri.etsi.org/TrstSvc/Svctype/CA/QC</ServiceType>
<Status>http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted</Status>
<StartDate>2017-09-25T12:00:00</StartDate>
<CapturedQualifiers>
<Qualifier>http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/QCForESig</Qualifier>
<Qualifier>http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/QCWithQSCD</Qualifier>
<Qualifier>http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/QCStatement</Qualifier>
</CapturedQualifiers>
<AdditionalServiceInfoUris>
<URI>http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/ForeSignatures</URI>
<URI>http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/ForeSeals</URI>
</AdditionalServiceInfoUris>
<ServiceSupplyPoints>
<URI>http://qca.crl.certum.pl/qca_2017.crl</URI>
</ServiceSupplyPoints>
</TrustedService>
</TrustedServices>
</TrustedServiceProvider>
</TrustedServiceProviders>
<Revocations>
<Revocation Id="0ff278b32edfed379544338c15ec9bc9ec6de753c6fc6c68cbb8f7a831d44f21e656ce513922afbffee4a2af979d95462dba58f56cc74ecb44430c908e9c2586">
<Origin>EXTERNAL</Origin>
<Source>CRLToken</Source>
<SourceAddress>http://qca.crl.certum.pl/qca_2017.crl</SourceAddress>
<Available>true</Available>
<Status>true</Status>
<ProductionDate>2019-04-16T05:46:14</ProductionDate>
<ThisUpdate>2019-04-16T05:46:14</ThisUpdate>
<NextUpdate>2019-04-17T05:46:14</NextUpdate>
<DigestAlgoAndValues>
<DigestAlgoAndValue>
<DigestMethod>SHA256</DigestMethod>
<DigestValue>5lbOUTkir7/+5KKvl52VRi26WPVsx07LREMMkI6cJYY=</DigestValue>
</DigestAlgoAndValue>
</DigestAlgoAndValues>
<BasicSignature>
<EncryptionAlgoUsedToSignThisToken>RSA</EncryptionAlgoUsedToSignThisToken>
<KeyLengthUsedToSignThisToken>4096</KeyLengthUsedToSignThisToken>
<DigestAlgoUsedToSignThisToken>SHA512</DigestAlgoUsedToSignThisToken>
<ReferenceDataFound>true</ReferenceDataFound>
<ReferenceDataIntact>true</ReferenceDataIntact>
<SignatureIntact>true</SignatureIntact>
<SignatureValid>true</SignatureValid>
</BasicSignature>
<SigningCertificate Id="ED380189EB280F5D86C914BFDD28D89795E5676AE893F3C3D75B12F3E42CC914"/>
<CertificateChain>
<ChainItem Id="ED380189EB280F5D86C914BFDD28D89795E5676AE893F3C3D75B12F3E42CC914">
<Source>TRUSTED_LIST</Source>
</ChainItem>
</CertificateChain>
<Info/>
</Revocation>
</Revocations>
<Info>
<Message Id="0">No CRL info found !</Message>
</Info>
<Base64Encoded>[...]</Base64Encoded>
</Certificate>
</UsedCertificates>
<TrustedLists>
<TrustedList>
<CountryCode>PL</CountryCode>
<Url>https://www.nccert.pl/tsl/PL_TSL.xml</Url>
<SequenceNumber>105</SequenceNumber>
<Version>5</Version>
<LastLoading>2019-04-16T08:22:01</LastLoading>
<IssueDate>2019-03-15T01:00:00</IssueDate>
<NextUpdate>2019-06-14T00:00:00</NextUpdate>
<WellSigned>true</WellSigned>
</TrustedList>
</TrustedLists>
<ListOfTrustedLists>
<CountryCode>EU</CountryCode>
<Url>https://ec.europa.eu/information_society/policy/esignature/trusted-list/tl-mp.xml</Url>
<SequenceNumber>238</SequenceNumber>
<Version>5</Version>
<LastLoading>2019-04-16T08:21:59</LastLoading>
<IssueDate>2019-04-04T12:00:00</IssueDate>
<NextUpdate>2019-10-04T00:00:00</NextUpdate>
<WellSigned>true</WellSigned>
</ListOfTrustedLists>
</DiagnosticData>

----------------Validation report---------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DetailedReport xmlns="http://dss.esig.europa.eu/validation/detailed-report">
<Signatures Id="id-0d5c90b084135f343a2314d0ea973930">
<ValidationProcessBasicSignatures BestSignatureTime="2019-04-16T08:34:14">
<Constraint Id="id-0d5c90b084135f343a2314d0ea973930">
<Name NameId="ADEST_ROBVPIIC">Is the result of the Basic Validation Process conclusive?</Name>
<Status>NOT OK</Status>
<Error NameId="ADEST_ROBVPIIC_ANS">The result of the Basic validation process is not conclusive!</Error>
</Constraint>
<Conclusion>
<Indication>FAILED</Indication>
<SubIndication>SIG_CONSTRAINTS_FAILURE</SubIndication>
<Errors NameId="BBB_SAV_ISQPSTP_ANS">The signed qualifying property: 'signing-time' is not present!</Errors>
</Conclusion>
</ValidationProcessBasicSignatures>
<ValidationSignatureQualification SignatureQualification="Not AdES but QC with QSCD">
<Constraint>
<Name NameId="QUAL_IS_ADES">Is the signature/seal an acceptable AdES (ETSI EN 319 102-1) ?</Name>
<Status>WARNING</Status>
<Warning NameId="QUAL_IS_ADES_INV">The signature/seal is not a valid AdES!</Warning>
</Constraint>
<Constraint>
<Name NameId="QUAL_TRUSTED_CERT_PATH">Is the certificate path trusted?</Name>
<Status>OK</Status>
</Constraint>
<Constraint Id="EU">
<Name NameId="QUAL_TRUSTED_LIST_ACCEPT">Is the trusted list acceptable?</Name>
<Status>OK</Status>
</Constraint>
<Constraint Id="PL">
<Name NameId="QUAL_TRUSTED_LIST_ACCEPT">Is the trusted list acceptable?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_QC_AT_ST">Is the certificate qualified at (best) signing time?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_FOR_SIGN_AT_ST">Is the certificate for eSig at (best) signing time?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_QC_AT_CC">Is the certificate qualified at issuance time?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_QSCD_AT_ST">Is the private key on a QSCD at (best) signing time?</Name>
<Status>OK</Status>
</Constraint>
<Conclusion>
<Indication>INDETERMINATE</Indication>
<Warnings NameId="QUAL_IS_ADES_INV">The signature/seal is not a valid AdES!</Warnings>
</Conclusion>
<ValidationCertificateQualification DateTime="2019-02-11T22:14:08" ValidationTime="CERTIFICATE_ISSUANCE_TIME" CertificateQualification="QC Cert for ESig with QSCD">
<Constraint>
<Name NameId="QUAL_HAS_CAQC">Is the certificate related to a CA/QC?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_HAS_GRANTED">Is the certificate related to a trust service with a granted status?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_TL_SERV_CONS">Is the trust service consistent ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_IS_TRUST_CERT_MATCH_SERVICE">Is the trusted certificate match the trust service ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_QC_AT_CC">Is the certificate qualified at issuance time?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_FOR_SIGN_AT_CC">Is the certificate for eSig at issuance time?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_QSCD_AT_CC">Is the private key on a QSCD at issuance time?</Name>
<Status>OK</Status>
</Constraint>
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
</ValidationCertificateQualification>
<ValidationCertificateQualification DateTime="2019-04-16T08:34:14" ValidationTime="BEST_SIGNATURE_TIME" CertificateQualification="QC Cert for ESig with QSCD">
<Constraint>
<Name NameId="QUAL_HAS_CAQC">Is the certificate related to a CA/QC?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_HAS_GRANTED">Is the certificate related to a trust service with a granted status?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_TL_SERV_CONS">Is the trust service consistent ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_IS_TRUST_CERT_MATCH_SERVICE">Is the trusted certificate match the trust service ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_QC_AT_ST">Is the certificate qualified at (best) signing time?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_FOR_SIGN_AT_ST">Is the certificate for eSig at (best) signing time?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_QSCD_AT_ST">Is the private key on a QSCD at (best) signing time?</Name>
<Status>OK</Status>
</Constraint>
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
</ValidationCertificateQualification>
</ValidationSignatureQualification>
</Signatures>
<BasicBuildingBlocks Id="id-0d5c90b084135f343a2314d0ea973930" Type="SIGNATURE">
<FC>
<Constraint>
<Name NameId="BBB_FC_IEFF">Is the expected format found?</Name>
<Status>OK</Status>
</Constraint>
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
</FC>
<ISC>
<Constraint>
<Name NameId="BBB_ICS_ISCI">Is there an identified candidate for the signing certificate?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_ICS_ISCS">Is the signing certificate signed?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_ICS_ISASCP">Is the signed attribute: 'signing-certificate' present?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_ICS_ISACDP">Is the signed attribute: 'cert-digest' of the certificate present?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_ICS_ICDVV">Is the certificate's digest value valid?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_ICS_AIDNASNE">Are the issuer distinguished name and the serial number equal?</Name>
<Status>OK</Status>
</Constraint>
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
<CertificateChain>
<ChainItem Id="[...]">
<Source>UNKNOWN</Source>
</ChainItem>
<ChainItem Id="ED380189EB280F5D86C914BFDD28D89795E5676AE893F3C3D75B12F3E42CC914">
<Source>TRUSTED_LIST</Source>
</ChainItem>
</CertificateChain>
</ISC>
<VCI>
<Constraint>
<Name NameId="BBB_VCI_ISPK">Is the signature policy known?</Name>
<Status>OK</Status>
</Constraint>
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
</VCI>
<CV>
<Constraint>
<Name NameId="BBB_CV_IRDOF">Is the reference data object(s) found?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_CV_IRDOI">Is the reference data object(s) intact?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_CV_ISI">Is the signature intact?</Name>
<Status>OK</Status>
</Constraint>
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
</CV>
<SAV>
<Constraint>
<Name NameId="BBB_SAV_ISQPSTP">Is signed qualifying property: 'signing-time' present?</Name>
<Status>NOT OK</Status>
<Error NameId="BBB_SAV_ISQPSTP_ANS">The signed qualifying property: 'signing-time' is not present!</Error>
</Constraint>
<Conclusion>
<Indication>FAILED</Indication>
<SubIndication>SIG_CONSTRAINTS_FAILURE</SubIndication>
<Errors NameId="BBB_SAV_ISQPSTP_ANS">The signed qualifying property: 'signing-time' is not present!</Errors>
</Conclusion>
</SAV>
<XCV>
<Constraint>
<Name NameId="BBB_XCV_CCCBB">Can the certificate chain be built till the trust anchor?</Name>
<Status>OK</Status>
</Constraint>
<Constraint Id="0FF278B32EDFED379544338C15EC9BC9EC6DE753C6FC6C68CBB8F7A831D44F21">
<Name NameId="BBB_XCV_SUB">Is the certificate validation concluant ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint Id="ED380189EB280F5D86C914BFDD28D89795E5676AE893F3C3D75B12F3E42CC914">
<Name NameId="BBB_XCV_SUB">Is the certificate validation concluant ?</Name>
<Status>OK</Status>
</Constraint>
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
<SubXCV Id="0FF278B32EDFED379544338C15EC9BC9EC6DE753C6FC6C68CBB8F7A831D44F21" TrustAnchor="false">
<Constraint>
<Name NameId="QUAL_UNIQUE_CERT">Is the certificate unique ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_XCV_PSEUDO_USE">Is pseudo used ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_XCV_ISNSSC">Is not self-signed certificate?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_XCV_ICSI">Is the certificate's signature intact?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="ASCCM">Are signature cryptographic constraints met?</Name>
<Status>OK</Status>
<AdditionalInfo>Validation time : 2019-04-16 08:34</AdditionalInfo>
</Constraint>
<Constraint>
<Name NameId="BBB_XCV_ISCGKU">Has the signer's certificate given key-usage?</Name>
<Status>OK</Status>
<AdditionalInfo>Key usage : nonRepudiation, digitalSignature</AdditionalInfo>
</Constraint>
<Constraint>
<Name NameId="BBB_XCV_AIA_PRES">Is authority info access present?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_XCV_REVOC_PRES">Is revocation info access present?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_XCV_ICTIVRSC">Is the current time in the validity range of the signer's certificate?</Name>
<Status>OK</Status>
<AdditionalInfo>Certificate validity : 2019-02-11 22:14 to 2021-02-10 22:14</AdditionalInfo>
</Constraint>
<Constraint>
<Name NameId="BBB_XCV_ISCR">Is the certificate not revoked?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_XCV_ISCOH">Is the certificate on hold?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_XCV_RFC">Is the revocation freshness check concluant ?</Name>
<Status>OK</Status>
</Constraint>
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
<RFC Id="0ff278b32edfed379544338c15ec9bc9ec6de753c6fc6c68cbb8f7a831d44f21e656ce513922afbffee4a2af979d95462dba58f56cc74ecb44430c908e9c2586">
<Constraint>
<Name NameId="BBB_XCV_IRDPFC">Is the revocation data present for the certificate?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_RFC_NUP">Is there a Next Update defined for the revocation data?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="BBB_RFC_IRIF">Is the revocation information fresh for the certificate?</Name>
<Status>OK</Status>
<AdditionalInfo>Next update : 2019-04-17 05:46</AdditionalInfo>
</Constraint>
<Constraint>
<Name NameId="ASCCM">Are signature cryptographic constraints met?</Name>
<Status>OK</Status>
<AdditionalInfo>Validation time : 2019-04-16 08:34</AdditionalInfo>
</Constraint>
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
</RFC>
</SubXCV>
<SubXCV Id="ED380189EB280F5D86C914BFDD28D89795E5676AE893F3C3D75B12F3E42CC914" TrustAnchor="true">
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
</SubXCV>
</XCV>
<CertificateChain>
<ChainItem Id="[...]">
<Source>UNKNOWN</Source>
</ChainItem>
<ChainItem Id="ED380189EB280F5D86C914BFDD28D89795E5676AE893F3C3D75B12F3E42CC914">
<Source>TRUSTED_LIST</Source>
</ChainItem>
</CertificateChain>
<Conclusion>
<Indication>FAILED</Indication>
<SubIndication>SIG_CONSTRAINTS_FAILURE</SubIndication>
<Errors NameId="BBB_SAV_ISQPSTP_ANS">The signed qualifying property: 'signing-time' is not present!</Errors>
</Conclusion>
</BasicBuildingBlocks>
<TLAnalysis CountryCode="EU">
<Constraint>
<Name NameId="QUAL_TL_FRESH">Is the trusted list fresh ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_TL_EXP">Is the trusted list not expired ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_TL_VERSION">Is the trusted list has the expected version ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_TL_WS">Is the trusted list well signed ?</Name>
<Status>OK</Status>
</Constraint>
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
</TLAnalysis>
<TLAnalysis CountryCode="PL">
<Constraint>
<Name NameId="QUAL_TL_FRESH">Is the trusted list fresh ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_TL_EXP">Is the trusted list not expired ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_TL_VERSION">Is the trusted list has the expected version ?</Name>
<Status>OK</Status>
</Constraint>
<Constraint>
<Name NameId="QUAL_TL_WS">Is the trusted list well signed ?</Name>
<Status>OK</Status>
</Constraint>
<Conclusion>
<Indication>PASSED</Indication>
</Conclusion>
</TLAnalysis>
</DetailedReport>

----------------Simple report-------------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SimpleReport xmlns="http://dss.esig.europa.eu/validation/simple-report">
<Policy>
<PolicyName>QES AdESQC TL based</PolicyName>
<PolicyDescription>Validate electronic signatures and indicates whether they are Advanced electronic Signatures (AdES), AdES supported by a Qualified Certificate (AdES/QC) or a
Qualified electronic Signature (QES). All certificates and their related chains supporting the signatures are validated against the EU Member State Trusted Lists (this includes
signer's certificate and certificates used to validate certificate validity status services - CRLs, OCSP, and time-stamps).
</PolicyDescription>
</Policy>
<ValidationTime>2019-04-16T08:34:14</ValidationTime>
<DocumentName></DocumentName>
<ValidSignaturesCount>0</ValidSignaturesCount>
<SignaturesCount>1</SignaturesCount>
<Signature Id="id-0d5c90b084135f343a2314d0ea973930" SignatureFormat="CAdES-BASELINE-T">
<BestSignatureTime>2019-04-16T08:34:14</BestSignatureTime>
<SignedBy>[...]</SignedBy>
<CertificateChain>
<Certificate>
<id>[...]</id>
<qualifiedName>[...]</qualifiedName>
</Certificate>
<Certificate>
<id>ED380189EB280F5D86C914BFDD28D89795E5676AE893F3C3D75B12F3E42CC914</id>
<qualifiedName>Certum QCA 2017</qualifiedName>
</Certificate>
</CertificateChain>
<SignatureLevel description="Not Advanced Electronic Signature but supported by a Qualified Certificate">Not AdES but QC with QSCD</SignatureLevel>
<Indication>TOTAL_FAILED</Indication>
<SubIndication>SIG_CONSTRAINTS_FAILURE</SubIndication>
<Errors>The result of the Basic validation process is not conclusive!</Errors>
<Errors>The signed qualifying property: 'signing-time' is not present!</Errors>
<Warnings>The signature/seal is not a valid AdES!</Warnings>
<SignatureScope name="Full document" scope="FullSignatureScope">Full document</SignatureScope>
</Signature>
</SimpleReport>

---------------- Document ------------------
<?xml version="1.0" encoding="utf-8"?>
<rejestracjaCertyfikatu xmlns="http://www.giif.mofnet.gov.pl/xsd/rest/certyfikaty20171017">
<csr>[...]</csr>

Istotny jest poniższy fragment w sekcji Simple report.

1
2
3
4
<Indication>TOTAL_FAILED</Indication>
<SubIndication>SIG_CONSTRAINTS_FAILURE</SubIndication>
<Errors>The result of the Basic validation process is not conclusive!</Errors>
<Errors>The signed qualifying property: 'signing-time' is not present!</Errors>

Jak widać problem leży w atrybucie signing-time. Początkowo podejrzewałem, że atrybut ten nie został umieszczony w dokumencie lub znalazł się wśród nie podpisanych atrybutów.

Jednak po wydaniu polecenia:

1
openssl cms -cmsout -noout -inform DER -in plik.sig -inform DER -print

otrzymałem poniższy wynik.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[...]
signerInfos:
version: 1
d.issuerAndSerialNumber:
issuer: C=PL, O=Asseco Data Systems S.A., CN=Certum QCA 2017/2.5.4.97=VATPL-5170359458
serialNumber: [...]
digestAlgorithm:
algorithm: sha256 (2.16.840.1.101.3.4.2.1)
parameter: NULL
signedAttrs:
object: contentType (1.2.840.113549.1.9.3)
value.set:
OBJECT:pkcs7-data (1.2.840.113549.1.7.1)

object: signingTime (1.2.840.113549.1.9.5)
value.set:
GENERALIZEDTIME:Apr 15 12:02:40 2019 GMT

object: id-smime-aa-ets-commitmentType (1.2.840.113549.1.9.16.2.16)
value.set:
SEQUENCE:
0:d=0 hl=2 l= 13 cons: SEQUENCE
2:d=1 hl=2 l= 11 prim: OBJECT :id-smime-cti-ets-proofOfOrigin

SEQUENCE:
0:d=0 hl=2 l= 13 cons: SEQUENCE
2:d=1 hl=2 l= 11 prim: OBJECT :id-smime-cti-ets-proofOfCreation
[...]

Czyli atrybut signingTime o OID:1.2.840.113549.1.9.5 występuje i jest podpisany.

Następnie porównałem to z moim plikiem testowym z pierwszej części wpisu o flow:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
signerInfos:
version: 1
d.issuerAndSerialNumber:
issuer: C=PL, O=Asseco Data Systems S.A., CN=Certum QCA 2017/2.5.4.97=VATPL-5170359458
serialNumber: 34381343500300685680795199330219258600
digestAlgorithm:
algorithm: sha256 (2.16.840.1.101.3.4.2.1)
parameter: NULL
signedAttrs:
object: id-smime-aa-ets-sigPolicyId (1.2.840.113549.1.9.16.2.15)
value.set:
NULL

object: contentType (1.2.840.113549.1.9.3)
value.set:
OBJECT:pkcs7-data (1.2.840.113549.1.7.1)

object: signingTime (1.2.840.113549.1.9.5)
value.set:
UTCTIME:Apr 4 10:03:46 2019 GMT

Atrybuty różnią się, nieprawidłowy plik ma wartość typu GENERALIZEDTIME a prawidłowy typu UTCTIME.

Tutaj przyda się odwołanie do RFC 5652:

Dates between 1 January 1950 and 31 December 2049 (inclusive) MUST be encoded as UTCTime. Any dates with year values before 1950 or after 2049 MUST be encoded as GeneralizedTime.

Czyli plik był odrzucany, gdyż walidator rygorystycznie przestrzega zgodności ze RFC 5652, na którym bazuje specyfikacja CAdES.

Flow część 4

Udało się rozwiązać problem blokujący sprawdzanie podpisu.

Przy okazji zauważyłem, że do części trzeciej wkradł się błąd.

W wywołaniu openssl brakowało flagi -binary. Niedopatrzenie zostało poprawione.

Sprawdzenie statusu wykazu transakcji

Pobranie listy przesłanych plików:

1
2
curl -s --key ksm-kmk.prv.pem --cert ksm-kmk.pem \
https://test.giif.mofnet.gov.pl/api/rest2018/instytucje/0123456789/pliki/

Otrzymuję listę z moim jednym przesłanym plikiem.

1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<plk:pliki xmlns:plk="http://www.giif.mofnet.gov.pl/xsd/rest/pliki20171017" ilosc="1">
<plk:plik id="2"
hashZaszyfrowany="47F0D3338A4DDE8657B49F5B9CFAC8C088C27BDB4855C7BC1E99EBC94C125C06"
hashJawny="4808E0535BC5AFB2035C4C22A818E0C2CB4C3708EBF531FB7E1BB6FCDCF9D389"
status="P" dataOtrzymania="2019-04-10T11:40:40">Plik poprawny.</plk:plik>
</plk:pliki>

Pobranie UPO

1
2
curl -s --key ksm-kmk.prv.pem --cert ksm-kmk.pem \
https://test.giif.mofnet.gov.pl/api/rest2018/instytucje/0123456789/pliki/2/upo

Otrzymuję UPO (w systemie testowym jest ono podpisane certyfikatem testowym.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?xml version="1.0" encoding="UTF-8"?>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="xmldsig-b9a437b7-5e6d-4057-893d-be99509b2b53">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<ds:Reference Id="xmldsig-b9a437b7-5e6d-4057-893d-be99509b2b53-ref0" Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#xmldsig-b9a437b7-5e6d-4057-893d-be99509b2b53-object0">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>C9iG0LbCjzA5Cu2vxMJFnewP7+o4QTNSAtzbCLGUAcA=</ds:DigestValue>
</ds:Reference>
<ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#xmldsig-b9a437b7-5e6d-4057-893d-be99509b2b53-signedprops">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>yE5XqzJzzzBVd1SQWmCM2iT2ozSjFzlgSAR91SOSbl8=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue Id="xmldsig-b9a437b7-5e6d-4057-893d-be99509b2b53-sigvalue">
pIu1wGRqw7oBgx/A9yANBM5DnlGQTemblTRqStRWt+Vk/zUQHEYrF9rdcTh3inLYLKgGXx+VElnY&#13;
hgX8ISgKjyeXUHFPcD+NWQIqQq7STCbf/8XqRokq+bvpdOb9oyVphWqtgcsje+PzZyFfNaS7Z8Uk&#13;
Fs4pXqUaawihRXk/FWCsAo95fQ4WLKbQWNJgStzZ0qn6GE/4zKmDh5wWnXGp5LruGN4dbmdUP1+e&#13;
rKHFM3KTjO+fef+rhrX65quQ3FOl5Ol809DTmRTQamdqQg2jRptmGtrK0C8EgQZvJJ6CQfxp90Kl&#13;
kG2+UKYrBy/bAPcRGH0MU8ZGzFg7huUfiN26Dg==
</ds:SignatureValue>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>
MIIG0zCCBLugAwIBAgIQSVemUhcVjMhEjlQA5XClTTANBgkqhkiG9w0BAQsFADCBpzELMAkGA1UE&#13;
BhMCUEwxFDASBgNVBAgTC21hem93aWVja2llMREwDwYDVQQHEwhXYXJzemF3YTEfMB0GA1UECgwW&#13;
TWluaXN0ZXJzdHdvIEZpbmFuc8OzdzEyMDAGA1UECxMpR2VuZXJhbG55IEluc3Bla3RvciBJbmZv&#13;
cm1hY2ppIEZpbmFuc293ZWoxGjAYBgNVBAMTEUdJSUYgVEVTVCBDQSAyMDE5MB4XDTE5MDMyMjEz&#13;
MDIwMFoXDTIwMDMyMjEzMDIwMFowga4xCzAJBgNVBAYTAlBMMRQwEgYDVQQIEwttYXpvd2llY2tp&#13;
ZTERMA8GA1UEBxMIV2Fyc3phd2ExHzAdBgNVBAoMFk1pbmlzdGVyc3R3byBGaW5hbnPDs3cxMjAw&#13;
BgNVBAsTKUdlbmVyYWxueSBJbnNwZWt0b3IgSW5mb3JtYWNqaSBGaW5hbnNvd2VqMSEwHwYDVQQD&#13;
ExhUZXN0b3d5IHBvZHBpc3l3YWN6IFVQTy4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB&#13;
AQDFJx+Wc/xGgQQeMB3jVFiE6v+YhLP7bHzUgA/mCs2S6cORQ1M4MefHxWqAnj/cVB841njkQmoH&#13;
p6UrellaluJSIAa7chjBEE0M/jAZnHe5EygOVriw9KgXqbhQsFan6zz2EUfOa+btnylIskzCpYME&#13;
dLHPi/z7yGSFJhaT/ei9D9zYQcMcUSrgmnxH1Text3kJ+o6zXssB0dcEvAe+Vo5GbtG8n42dG1ZW&#13;
Akb9n3+UZEASAuRzuEP0R/vCJ0/HKZacpmKdC7JzLIGQtDBdieSUk3onFOvt/Qewg5plg67/Qu9V&#13;
2TWhn74D2t7rcFaOxmbBsADEi98CfWE+So+FWif/AgMBAAGjggHwMIIB7DAMBgNVHRMBAf8EAjAA&#13;
MB0GA1UdDgQWBBSNnr4Q2WAWLHoBUNCZOleggbg16DCB4wYDVR0jBIHbMIHYgBRTxX0tIaI7Xg8u&#13;
og0T7CU8ZTeOlaGBraSBqjCBpzELMAkGA1UEBhMCUEwxFDASBgNVBAgTC21hem93aWVja2llMREw&#13;
DwYDVQQHEwhXYXJzemF3YTEfMB0GA1UECgwWTWluaXN0ZXJzdHdvIEZpbmFuc8OzdzEyMDAGA1UE&#13;
CxMpR2VuZXJhbG55IEluc3Bla3RvciBJbmZvcm1hY2ppIEZpbmFuc293ZWoxGjAYBgNVBAMTEUdJ&#13;
SUYgVEVTVCBDQSAyMDE5ghBJV6ZSFxWMyESOVADlcKVKMA4GA1UdDwEB/wQEAwIE8DAdBgNVHSUE&#13;
FjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL3Rlc3QuZ2lp&#13;
Zi5tb2ZuZXQuZ292LnBsL3BraS9HSUlGLVRFU1QtQ0EuY3JsME8GCCsGAQUFBwEBBEMwQTA/Bggr&#13;
BgEFBQcwAoYzaHR0cDovL3Rlc3QuZ2lpZi5tb2ZuZXQuZ292LnBsL3BraS9HSUlGLVRFU1QtQ0Eu&#13;
Y3J0MBEGCWCGSAGG+EIBAQQEAwIFoDANBgkqhkiG9w0BAQsFAAOCAgEArCNm7GX4KQ1lMzqf0uZd&#13;
kwews9nRtm9/NJGVQFbfi0IeWqiURAxFsmjTFeaHDOxFK9+Fr0oy+OhgpKk+W5rY4IjueTeAohGg&#13;
43Km5R2lCI/EFQcvYOzzPduJbma+F25Y4RBtSCQAjx/jDvMFLja9WEHa9snptslXs64YFCjENd22&#13;
92FSIJv+HbEJslgJipeQS+ld4SCIy6PJ3DgrS5kGRnfifnFiTxtKKYW9YYszzRC8tt+ULK62CQ0v&#13;
UMgImmDmBJxsdixsN2iOHMs4lZGNHY6+wIXYoUIPoGK/p+1Vann4w8RC+SvyQWtqlu6zRD/+3XCz&#13;
vWRdzjRXqYxvQwcEfZ+rlF0B8g0MNQiBQZApq/mUAKHQ7EdEPU+v8HSNqIIAA6gdI6O5SjjHf8TV&#13;
cksIkSmCvXEiMI7aRYVRTy2TBTfKQ9IUE0LtUm7KhyMmouhcIHya4yTMKdslRprzdBw6VGK2vl2r&#13;
uOTDwRKJrThIQCzLhAjZB1VBZKsEaUagrUfqBysQ0dymA070myKlOAVuQkp5KfEFcn4tgRVz/NSs&#13;
c8Va/glr0O+rLw9ESBVzBldsfMD6IBYW6ckqH/r5qkXxttSRj3a8UcCPjgZ7VW5astHn5iNh06nv&#13;
tq3FLSShAlI6FAUUU814PsZHgUCqY+01GoHx9vqqKv6EqcU/HHqtzUY=
</ds:X509Certificate>
<ds:X509SubjectName>CN=Testowy podpisywacz UPO.,OU=Generalny Inspektor Informacji Finansowej,O=Ministerstwo Finansów,L=Warszawa,ST=mazowieckie,C=PL</ds:X509SubjectName>
<ds:X509IssuerSerial>
<ds:X509IssuerName>CN=GIIF TEST CA 2019,OU=Generalny Inspektor Informacji Finansowej,O=Ministerstwo Finansów,L=Warszawa,ST=mazowieckie,C=PL</ds:X509IssuerName>
<ds:X509SerialNumber>97488746902839128566325364985101854029</ds:X509SerialNumber>
</ds:X509IssuerSerial>
</ds:X509Data>
</ds:KeyInfo>
<ds:Object Encoding="UTF-8" Id="xmldsig-b9a437b7-5e6d-4057-893d-be99509b2b53-object0" MimeType="text/xml">
<Potwierdzenie xmlns:plk="http://www.giif.mofnet.gov.pl/xsd/upo/2018" wersjaSchemy="5-0">
<NazwaPodmiotuPrzyjmujacego>Generalny Inspektor Informacji Finansowej</NazwaPodmiotuPrzyjmujacego>
<NumerReferencyjny>2</NumerReferencyjny>
<SkrotDokumentu>[47F0D3338A4DDE8657B49F5B9CFAC8C088C27BDB4855C7BC1E99EBC94C125C06]</SkrotDokumentu>
<SkrotZlozonejStruktury>4808E0535BC5AFB2035C4C22A818E0C2CB4C3708EBF531FB7E1BB6FCDCF9D389</SkrotZlozonejStruktury>
<NazwaStrukturyLogicznej>Plik zgodny z rozporządzeniem Ministra Finansów z dnia 21 września 2001r. w sprawie określenia wzoru rejestru transakcji, sposobu jego prowadzenia oraz trybu dostrczania danych z rejestru Generalnemu Inspektorowi Informacji Finansowej.</NazwaStrukturyLogicznej>
<DataWplyniecia>2019-04-10T11:40:40</DataWplyniecia>
<StempelCzasu>MjAxOS0wNC0xMFQxNDoyMjo0MS40MzYrMDI6MDA=</StempelCzasu>
<NIP1>0123456789</NIP1>
</Potwierdzenie>
</ds:Object>
<ds:Object>
<xades:QualifyingProperties xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#" Target="#xmldsig-b9a437b7-5e6d-4057-893d-be99509b2b53">
<xades:SignedProperties Id="xmldsig-b9a437b7-5e6d-4057-893d-be99509b2b53-signedprops">
<xades:SignedSignatureProperties>
<xades:SigningTime>2019-04-10T14:22:42.125+02:00</xades:SigningTime>
<xades:SigningCertificate>
<xades:Cert>
<xades:CertDigest>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>+V8p3bjsNxzHqFkdF9EFIAJiJ2BgGFo7Qw9HH7aJyyU=</ds:DigestValue>
</xades:CertDigest>
<xades:IssuerSerial>
<ds:X509IssuerName>CN=GIIF TEST CA 2019,OU=Generalny Inspektor Informacji Finansowej,O=Ministerstwo Finansów,L=Warszawa,ST=mazowieckie,C=PL</ds:X509IssuerName>
<ds:X509SerialNumber>97488746902839128566325364985101854029</ds:X509SerialNumber>
</xades:IssuerSerial>
</xades:Cert>
<xades:Cert>
<xades:CertDigest>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>E43Y6nb63uYFAY/LQ1tEHlLu/7RRqgLLoQ57GH5ZjXk=</ds:DigestValue>
</xades:CertDigest>
<xades:IssuerSerial>
<ds:X509IssuerName>CN=GIIF TEST CA 2019,OU=Generalny Inspektor Informacji Finansowej,O=Ministerstwo Finansów,L=Warszawa,ST=mazowieckie,C=PL</ds:X509IssuerName>
<ds:X509SerialNumber>97488746902839128566325364985101854026</ds:X509SerialNumber>
</xades:IssuerSerial>
</xades:Cert>
</xades:SigningCertificate>
</xades:SignedSignatureProperties>
</xades:SignedProperties>
</xades:QualifyingProperties>
</ds:Object>
</ds:Signature>

(ps. to nie jest docelowa struktura UPO, w czwartek pojawią się prawidłowo wystawione UPO.)

Problem w realizacji flow

W trakcie opisywania flow, natrafiłem na problem ze sprawdzaniem podpisu pod plikami transakcji, przygotowanymi oprogramowaniem innym niż Szafir SDK (zgodnymi z CAdES, ale o nieco innej strukturze).

Przygotowuję obejście tego problemu, ale do czasu jego ukończenia (prawdopodobnie środa, 10 kwietnia 2019) muszę wstrzymać dalsze publikacje prezentujące flow.

Flow-część-3

Przesyłanie wykazu transakcji

Przygotowanie dokumentu

Utworzyłem dokument XML z kartą transakcji:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?xml version="1.0" encoding="UTF-8"?>
<Dokument xmlns="http://crd.gov.pl/wzor/2018/10/19/5993/" xmlns:t="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2018/10/10/giif/typy/" nipIO="0123456789">
<OpisDokumentu/>
<DaneDokumentu/>
<TrescDokumentu rodzaj="inny" format="text/xml" kodowanie="XML">
<Karta>
<IdentyfikatorTr>1</IdentyfikatorTr>
<DataTr>2019-04-05</DataTr>
<KwotaTr>15000</KwotaTr>
<KodWalutyTr>EUR</KodWalutyTr>
<KodRodzajuTr>11</KodRodzajuTr>
<TytulTr>Na waciki</TytulTr>
<SposobWydaniaDysp>1</SposobWydaniaDysp>
<TrZlecanaPrzezKlienta>
<ZleceniodawcaOsobaFizyczna>
<OsFizycznaKlientIO>
<t:ImiePierwsze>Tester</t:ImiePierwsze>
<t:Nazwisko>Testowy</t:Nazwisko>
<t:Obywatelstwo>PL</t:Obywatelstwo>
<t:PESEL>10302626901</t:PESEL>
<t:DokumentTozsamosci>
<t:RodzajDokumentu>DO</t:RodzajDokumentu>
<t:SeriaINumerDokumentu>RMH455761</t:SeriaINumerDokumentu>
</t:DokumentTozsamosci>
</OsFizycznaKlientIO>
</ZleceniodawcaOsobaFizyczna>
<Beneficjent>
<BeneficjentDanePelne>
<BeneficjentOsFizyczna>
<t:ImiePierwsze>Tester</t:ImiePierwsze>
<t:Nazwisko>Testowy</t:Nazwisko>
<t:Obywatelstwo>PL</t:Obywatelstwo>
<t:PESEL>10302626901</t:PESEL>
</BeneficjentOsFizyczna>
</BeneficjentDanePelne>
</Beneficjent>
</TrZlecanaPrzezKlienta>
</Karta>
</TrescDokumentu>
</Dokument>

PESEL i numer dowodu osobistego pochodzą serwisu generatory.it i mają poprawne sumy kontrolne.

Waliduję zgodność dokumentu ze schemą xsd:

1
2
3
ksm@ksm-7530:~/Downloads$ java -jar giif-xml2018-cli.exe xsd-validate gotowka_export_0123456789_1.xml 2>/dev/null
Plik poprawny: gotowka_export_0123456789_1.xml
Weld SE container STATIC_INSTANCE shut down by shutdown hook

Waliduję zgodność dokumentu z regułami walidacji

1
2
3
ksm@ksm-7530:~/Downloads$ java -jar giif-xml2018-cli.exe validate gotowka_export_0123456789_1.xml 2>/dev/null
Plik poprawny: gotowka_export_0123456789_1.xml
Weld SE container STATIC_INSTANCE shut down by shutdown hook

Podpisanie dokumentu

Dokument podpisałem programem proCertum SmartSign, z ustawieniami jak w części 1.

Uzyskałem plik gotowka.xml.sig, o strukturze takiej jak pokazana w części pierwszej.

Szyfrowanie dokumentu

Pobieram certyfikat do szyfrowania do pliku GIIF-TEST-2019.crt:

1
2
3
curl --header 'Accept: application/x-pem-file' \
--output GIIF-TEST-2019.crt \
https://test.giif.mofnet.gov.pl/api/rest2018/certyfikatSzyfrowania

Szyfruję plik gotowka.xml.sig, tworząc plik zaszyfrowany gotowka.xml.enc, certyfikat odbiorcy to GIIF-TEST-2019.crt:

1
2
3
4
openssl cms -encrypt -aes256 -binary \
-outform DER -out gotowka.xml.enc \
-in gotowka.xml.sig \
GIIF-TEST-2019.crt

Otrzymuję plik o następującej strukturze:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
ksm@ksm-7530:~/tmp/flow/wykaz_transakcji$ openssl cms -cmsout -noout -inform DER -in gotowka.xml.enc -print 
CMS_ContentInfo:
contentType: pkcs7-envelopedData (1.2.840.113549.1.7.3)
d.envelopedData:
version: <ABSENT>
originatorInfo: <ABSENT>
recipientInfos:
d.ktri:
version: <ABSENT>
d.issuerAndSerialNumber:
issuer: C=PL, ST=mazowieckie, L=Warszawa, O=Ministerstwo Finans\xC3\xB3w, OU=Generalny Inspektor Informacji Finansowej, CN=GIIF TEST CA 2019
serialNumber: 97488746902839128566325364985101854028
keyEncryptionAlgorithm:
algorithm: rsaEncryption (1.2.840.113549.1.1.1)
parameter: NULL
encryptedKey:
0000 - 19 36 19 c2 07 40 6e 66-bd 48 09 24 a6 64 4d .6...@nf.H.$.dM
000f - b6 e2 73 d5 a6 f0 c1 73-41 d1 f8 b1 3a ca ea ..s....sA...:..
001e - 80 ee 1b fc 77 b1 6f 8a-2c 1b a0 21 62 2f 16 ....w.o.,..!b/.
002d - 11 86 35 04 8e 3e 4e ce-98 ba 7b 88 c8 f0 7f ..5..>N...{....
003c - 44 b0 c4 69 f9 57 cf 6a-69 e3 a8 5a 6f 3f 7d D..i.W.ji..Zo?}
004b - 6b 15 e5 34 b6 48 92 3a-e3 83 2e dc 09 60 14 k..4.H.:.....`.
005a - 3b 7e 79 a8 9f 1f ff 65-ee d0 0b da 04 65 51 ;~y....e.....eQ
0069 - 0f 7f 9e ae a6 21 79 60-ec 00 16 e7 ae c0 7f .....!y`.......
0078 - cb 94 20 cb bb 75 20 fc-10 0a 44 b1 43 0a d1 .. ..u ...D.C..
0087 - 0b 73 b4 ae 82 9e 97 5d-c1 1c c7 8c dd e7 77 .s.....]......w
0096 - 34 07 7d 5b 19 a3 52 75-2a 44 61 6f 73 5e 61 4.}[..Ru*Daos^a
00a5 - e9 3c a3 13 44 0b d5 d0-80 ce 72 59 ae 6b 7a .<..D.....rY.kz
00b4 - df ad 97 08 81 5f 73 27-99 61 db ae ce 11 24 ....._s'.a....$
00c3 - 25 bd f2 1e cb 4c b2 a8-bf ea 7f 9b 4f d3 67 %....L......O.g
00d2 - 88 c9 d5 48 34 75 cf be-21 b5 ff a9 cc 5b 6f ...H4u..!....[o
00e1 - b4 ba 9c 47 f7 d8 8d 5d-30 a4 da 2b 9f df ef ...G...]0..+...
00f0 - d9 b3 8b 36 46 65 66 2c-df f4 5e 22 08 c9 0b ...6Fef,..^"...
00ff - fd .
encryptedContentInfo:
contentType: pkcs7-data (1.2.840.113549.1.7.1)
contentEncryptionAlgorithm:
algorithm: aes-256-cbc (2.16.840.1.101.3.4.1.42)
parameter: OCTET STRING:
0000 - cb 05 b8 b0 4b 77 52 08-83 28 e3 81 60 51 60 ....KwR..(..`Q`
000f - 26 &
encryptedContent:
0000 - 5a 42 df f4 b5 ce cd 8e-ef 1b 5b 8a c3 0c 26 ZB........[...&
000f - d1 3e fc 21 f9 42 45 40-b5 a3 f0 cd ff 59 2e .>.!.BE@.....Y.
001e - d8 79 1e 6c 6a b0 76 64-b2 b8 44 e6 45 5f 05 .y.lj.vd..D.E_.
002d - 2c 78 c6 cf 52 c8 35 81-4c 66 19 f5 63 68 07 ,x..R.5.Lf..ch.
003c - c1 70 37 df fd 17 a9 81-17 c1 86 d0 3c 80 fd .p7.........<..
004b - 71 37 42 b5 87 ff 3b df-a1 a3 b8 65 9e 98 b2 q7B...;....e...
005a - 0a f1 23 7b b3 81 5d 5a-a3 88 35 b4 db fb 3d ..#{..]Z..5...=
0069 - 0c 8a a0 5a 83 73 14 1e-32 58 ff a8 cb 3e f2 ...Z.s..2X...>.
0078 - 83 97 e9 d6 df 56 32 fa-7e 55 d1 79 83 5a 47 .....V2.~U.y.ZG
0087 - 82 19 89 95 02 5f 80 25-6b 4c 0f 57 8c 54 35 ....._.%kL.W.T5
0096 - bb 27 43 88 df d7 a5 5c-6c 0c 3e 70 80 07 04 .'C....\l.>p...
00a5 - e7 84 8c 22 a4 eb c0 ff-93 2a e9 f0 12 5e 49 ...".....*...^I
00b4 - 0b ef 42 58 61 f1 52 ad-0e 7a b7 30 b2 73 2a ..BXa.R..z.0.s*
00c3 - db 87 68 d5 4f b2 51 18-e7 75 5d c3 84 b3 2b ..h.O.Q..u]...+
00d2 - 68 c5 ce 94 3f 21 66 ae-45 24 25 66 32 20 8b h...?!f.E$%f2 .
00e1 - da ed 9c 88 f4 ae 16 ab-52 71 97 67 c7 53 82 ........Rq.g.S.
00f0 - 4c b7 8d d5 66 04 10 f7-75 84 24 74 24 4b d3 L...f...u.$t$K.
00ff - cc 11 07 3d 70 47 14 73-6f 94 7b 99 95 ad 4d ...=pG.so.{...M
010e - 61 41 a1 28 c5 17 73 15-fb 1f 30 54 aa ae 4c aA.(..s...0T..L
011d - 09 e5 fb fd d0 90 fc 1e-c8 18 ce d3 61 ea b5 ............a..
012c - 27 b0 11 94 92 3e fe 97-26 47 78 9c ea 2b ff '....>..&Gx..+.
013b - 26 23 d3 58 03 39 43 58-22 2c 8b 29 1d db a0 &#.X.9CX",.)...
014a - 6e 5d 12 32 4c 37 11 4f-18 09 f0 8b 0f 62 2c n].2L7.O.....b,
0159 - a5 9d 9c f1 83 bd dd 46-c9 01 10 80 71 05 6b .......F....q.k
0168 - 5d ac 01 8e 8f 2f 9c d1-a1 60 f5 2c 66 0a fa ]..../...`.,f..
0177 - 97 f4 b1 84 6f b7 b3 32-11 0c db bf 04 92 8a ....o..2.......
0186 - ce 28 ea c7 68 e4 99 d2-76 78 b4 db e7 61 33 .(..h...vx...a3
0195 - 6d 2f a5 6e 3c ff 38 53-a3 37 d3 a1 5b d3 2f m/.n<.8S.7..[./
01a4 - 0c 89 ef eb 49 4a 14 14-30 f7 61 52 46 82 0a ....IJ..0.aRF..
01b3 - 0c eb 16 94 ef 15 bd 91-2a fc 45 6a 33 61 62 ........*.Ej3ab
01c2 - 9a b0 4f 8d 94 aa bf a4-ab 86 db 66 0d 47 35 ..O........f.G5
01d1 - c3 23 16 61 27 c0 01 cb-8e 5d f4 2e 39 bd 10 .#.a'....]..9..
01e0 - 59 d8 4d 9b 6b 3c 8d e8-d7 dc c6 b1 10 58 4a Y.M.k<.......XJ
01ef - a2 d2 12 57 6b af c5 ec-99 0d 8a ca 24 3f 04 ...Wk.......$?.
01fe - 00 e7 7e 11 0f ca bf a7-86 5e 35 9c 45 18 cf ..~......^5.E..
020d - 3c 18 30 08 5d b9 79 09-56 22 50 a0 67 ab bb <.0.].y.V"P.g..
021c - c5 f9 74 ee 65 81 8d b4-f4 90 9e d3 28 92 ee ..t.e.......(..
022b - c0 f0 16 c8 7a c7 62 85-11 c3 7c f8 ce 22 d5 ....z.b...|..".
023a - 80 e5 0c 8e 18 69 c7 cc-03 49 be f6 3d 39 78 .....i...I..=9x
0249 - ae 89 92 09 95 04 fa 5c-d8 e3 72 ab 6a 59 e2 .......\..r.jY.
0258 - 57 03 79 64 59 d6 d0 6c-47 99 5d 42 3e d4 76 W.ydY..lG.]B>.v
0267 - 77 75 ca d6 89 2e 88 c0-1f ee 9d 10 e8 b1 93 wu.............
0276 - 14 02 72 e2 04 1e 38 e6-ab 80 3a d8 e3 95 c7 ..r...8...:....
0285 - ac df 4a 7c 99 10 39 7b-ef 7c f4 3a 11 ca 96 ..J|..9{.|.:...
0294 - 82 2a 75 87 d8 67 7a f3-8a 1a 5e 27 51 49 63 .*u..gz...^'QIc
02a3 - ba cd c9 10 b5 d5 48 25-91 9f ef fa e2 17 5f ......H%......_
02b2 - 9e 98 07 36 bb 9e e3 32-f8 8a b3 54 8a a0 80 ...6...2...T...
02c1 - c7 49 ed 06 48 79 a4 e0-25 70 f0 20 86 dc ea .I..Hy..%p. ...
02d0 - 60 75 63 2c 0c 2f b1 42-9f 6c e2 50 9f e0 17 `uc,./.B.l.P...
02df - 24 33 35 66 ff f6 dd ba-17 ed 15 6a fd 61 84 $35f.......j.a.
02ee - ed e0 0a 71 b9 3d 8b ca-d9 8f c5 6b c1 ea 18 ...q.=.....k...
02fd - 3b a8 73 90 9a 99 67 8c-58 d5 f9 cf c9 8c 12 ;.s...g.X......
030c - 40 69 97 44 d0 ca e3 9b-a9 d5 e2 db fc a2 65 @i.D..........e
031b - fa 23 3c cc 77 08 0c 3d-b2 07 2b 64 08 d3 f5 .#<.w..=..+d...
032a - 10 e6 8f ff e5 fa bb df-47 1b 6f a9 7a 62 17 ........G.o.zb.
0339 - 5b 8f d4 d2 99 24 75 a8-b8 f2 df aa 23 0d cb [....$u.....#..
0348 - 7b b5 3b e0 f4 d3 ab 89-03 b9 93 bc 75 f9 71 {.;.........u.q
0357 - 21 3f 8a 18 3e 25 4e 15-54 13 bf 95 8d 54 25 !?..>%N.T....T%
0366 - ac 30 9b 7e b2 6d cd 20-c6 96 2a 9e b8 ec 19 .0.~.m. ..*....
0375 - 5c e7 d6 f1 01 74 d5 e0-f8 4b f5 62 60 4d ae \....t...K.b`M.
0384 - 45 fe 29 46 19 fd ec 54-a8 cb 4a 50 8c 8d 19 E.)F...T..JP...
0393 - ac 9c 73 8d 1f 94 26 5c-c0 63 f2 1b 23 d6 f3 ..s...&\.c..#..
03a2 - b8 3d a0 cd e2 92 f3 0f-45 04 2b 41 9d 85 f1 .=......E.+A...
03b1 - 35 72 b3 f2 91 68 ba 90-ae 0c a0 37 77 75 f7 5r...h.....7wu.
03c0 - b7 ad e6 7c 46 57 a3 88-4b fe 81 1f 93 89 a7 ...|FW..K......
03cf - b9 4c 19 25 29 4b 93 7e-2f cb 40 36 89 83 f3 .L.%)K.~/.@6...
03de - c4 11 fc 20 d2 f9 36 f6-9f 6e 5a e0 2b 69 f5 ... ..6..nZ.+i.
03ed - 77 c4 1b e2 da 41 d9 e4-d0 2c 22 5e f5 d4 50 w....A...,"^..P
03fc - c3 c2 c9 94 52 32 1f 90-82 5f 21 8c 03 db 66 ....R2..._!...f
040b - c1 aa 1e f9 b7 1d a8 58-57 f8 2b 84 cc 47 e5 .......XW.+..G.
041a - 6f c9 74 69 66 15 ab a1-66 d2 bf 47 f5 b8 79 o.tif...f..G..y
0429 - 8e ba ab 20 5c 12 a9 7a-d4 db 34 16 4f 3a 05 ... \..z..4.O:.
0438 - 80 18 a4 e6 61 3f 62 36-06 61 65 b2 d3 49 a6 ....a?b6.ae..I.
0447 - 2e 00 73 9f 1a 37 c5 cd-92 1a 3f 20 a0 41 6c ..s..7....? .Al
0456 - c9 3a 9c fd 9f 7b b1 c3-91 f3 c0 0c d8 88 23 .:...{........#
0465 - 6c 19 3c a0 b4 14 ee 77-8e 3f 91 cf 80 1d 6b l.<....w.?....k
0474 - ef 68 a7 59 68 33 dd d8-77 a9 b4 86 98 c5 e6 .h.Yh3..w......
0483 - ce 1b e1 c5 6a 0b e5 32-67 29 fd e5 83 fd 34 ....j..2g)....4
0492 - f8 4c b9 69 04 e7 8b 1e-ce 51 ed f4 eb 48 e0 .L.i.....Q...H.
04a1 - 78 41 b6 29 94 99 46 5f-ed 71 ee 18 26 fe 93 xA.)..F_.q..&..
04b0 - 03 a6 67 c4 cd 6c 64 61-24 21 bb 30 60 db a3 ..g..lda$!.0`..
04bf - 36 d0 a7 c1 7c 2e 9d bb-6b 6c 3d 61 97 22 66 6...|...kl=a."f
04ce - be 83 2a c4 6c 28 8c 4c-68 9d d2 94 e3 d5 02 ..*.l(.Lh......
04dd - 1a 70 46 18 2e c9 c5 c5-f7 ef 1e 26 73 21 9c .pF........&s!.
04ec - ff c4 27 c3 d5 43 b1 d0-f4 ad 6d 36 77 b4 ef ..'..C....m6w..
04fb - b0 8a aa ac 4c 7d 9b 75-a2 59 fa 35 de 66 7f ....L}.u.Y.5.f.
050a - 8e 72 92 88 14 c4 0e 4a-4b 7b 29 e0 cf fa f0 .r.....JK{)....
0519 - 5a 96 5d bd bd d2 25 f7-7f f5 77 4a 92 50 a2 Z.]...%...wJ.P.
0528 - 14 70 9a 7a 70 20 b1 0f-17 5b 5a 57 61 84 84 .p.zp ...[ZWa..
0537 - 35 e7 84 dd de bf fa 09-b2 d9 cc e5 76 95 b5 5...........v..
0546 - ae 15 eb 0d 88 d5 bc 87-03 49 9d 34 b6 3a 44 .........I.4.:D
0555 - 85 21 b4 8d fc 56 29 cf-88 9e fb b9 61 f9 11 .!...V).....a..
0564 - 0b 92 3b d3 5b 72 c5 6b-31 3b ca 5d 59 0a 13 ..;.[r.k1;.]Y..
0573 - 88 ad fb 5f a1 6e 51 30-86 c3 e2 7b 9d 5c 41 ..._.nQ0...{.\A
0582 - a9 9e f4 43 24 2f 1e 92-d9 83 4b e1 7b 9f df ...C$/....K.{..
0591 - 6c 57 36 23 aa ce 8b f8-c6 f4 3e eb ec 99 37 lW6#......>...7
05a0 - ec 1b 85 ec fb 42 43 00-a8 aa e6 70 72 f5 cb .....BC....pr..
05af - e1 c7 63 8b 6a f3 9d 66-71 88 cc 7e 2a 56 8b ..c.j..fq..~*V.
05be - e7 fe e7 13 17 fb 4f a1-4f 34 be f3 e6 9b 87 ......O.O4.....
05cd - ce 2d f3 44 39 66 77 60-29 ea 56 0c 41 ee f0 .-.D9fw`).V.A..
05dc - 95 fe 35 a1 9b 41 03 67-f7 e5 f8 32 a0 77 8c ..5..A.g...2.w.
05eb - 65 e9 51 a7 fa 53 4c 64-80 f9 43 47 de 95 32 e.Q..SLd..CG..2
05fa - 4d fe 8c c0 73 f1 be f7-64 6e 63 a9 0b c4 70 M...s...dnc...p
0609 - e2 b6 a9 ed 0d d2 9a 56-6b cf 92 4c 55 f1 a4 .......Vk..LU..
0618 - 5b 0c 46 53 61 0e 5e 6b-3d 1e c6 9b d4 7c 9b [.FSa.^k=....|.
0627 - 73 d4 1f 9f 23 5f 59 eb-3b ea dc 73 b7 a3 56 s...#_Y.;..s..V
0636 - cd 76 8b 9a c8 28 1a fd-c6 c0 f5 f6 ba 02 0e .v...(.........
0645 - c8 a5 07 fd d0 b4 fa 54-41 86 96 39 1d 08 b9 .......TA..9...
0654 - 60 d9 87 46 84 be 0c cf-96 4f f5 67 06 04 40 `..F.....O.g..@
0663 - 80 07 af 38 b3 a4 15 6f-ff 63 e5 a1 4f 4a de ...8...o.c..OJ.
0672 - 8c a9 98 68 14 71 c5 e4-75 b2 04 e5 cf e8 7b ...h.q..u.....{
0681 - 68 97 dc c4 9a 67 bb 01-70 9b 6e a5 23 66 4d h....g..p.n.#fM
0690 - fd f5 87 83 ac 12 97 61-f2 49 7f 8e b5 7a 8d .......a.I...z.
069f - 64 cf e2 9f 30 ee 00 81-e5 d2 eb 70 c7 c7 d8 d...0......p...
06ae - 3f 5c a4 ab 46 3b 36 d7-b6 3a eb 8a 6f b1 e7 ?\..F;6..:..o..
06bd - 37 ae 22 ec 1c c7 95 08-6f df f1 93 ad 08 ca 7.".....o......
06cc - 44 21 b1 c0 7e 5b 02 c1-88 3e f5 8e c5 45 e7 D!..~[...>...E.
06db - 87 56 cf 4a cd f1 25 eb-bb 5f 0c fd 0e f1 df .V.J..%.._.....
06ea - 49 78 8c 4d 25 c9 db 53-b6 f0 a8 90 b3 65 7d Ix.M%..S.....e}
06f9 - 84 71 3b c0 c1 ee 89 b7-c9 6d 7d 95 9c 57 88 .q;......m}..W.
0708 - 36 05 3a e5 d1 41 ab 92-73 64 9f f0 64 c5 49 6.:..A..sd..d.I
0717 - b1 1f 1b 1c c5 5b b7 93-72 ab fe df 77 d5 d1 .....[..r...w..
0726 - 00 62 34 fb 6b c1 ac c7-f2 35 e2 2a 2a 7e 3e .b4.k....5.**~>
0735 - 5f ba 28 e4 f9 fe 08 31-bd ab 40 b6 a2 00 5b _.(....1..@...[
0744 - 51 08 fd 4d 89 23 03 e8-f5 5e 51 d3 90 44 a8 Q..M.#...^Q..D.
0753 - db cc ed b4 2e ef 12 d4-3a 1c 9a c2 93 4a ad ........:....J.
0762 - df ae 75 ce e5 fa c4 f9-0e 68 c6 60 6a 0c 6e ..u......h.`j.n
0771 - a0 16 ca 38 ea 51 b8 3f-96 b4 91 0f ee 3a 12 ...8.Q.?.....:.
0780 - ed f7 08 0f 5f e2 9b b1-be 97 e7 1f aa 78 38 ...._........x8
078f - 51 c8 03 28 b1 5b f9 c0-25 c5 62 68 34 24 08 Q..(.[..%.bh4$.
079e - c3 bd 57 3d e2 1b 6d 73-8b 7a 3c d4 8f 6d aa ..W=..ms.z<..m.
07ad - c8 f1 e9 da 5e 2f 3d 77-21 a5 83 ce d6 da bf ....^/=w!......
07bc - 25 29 6c d7 07 db e0 d4-3e 45 12 92 38 ba 7a %)l.....>E..8.z
07cb - 22 3f 08 a4 f4 bf 97 d1-0a 0b 21 55 e4 3c 07 "?........!U.<.
07da - 04 81 98 09 af 5f 2b af-ef f4 8b 39 d3 53 9f ....._+....9.S.
07e9 - 1c 72 de 3f 53 22 88 36-e2 82 43 a1 12 ba ca .r.?S".6..C....
07f8 - f0 10 6a 20 85 55 70 50-78 d3 df 8d f9 a7 55 ..j .UpPx.....U
0807 - d0 34 d8 b7 09 0b 50 b1-dd fa ab 54 ee ef b9 .4....P....T...
0816 - 54 b5 1b ca c9 22 e7 ed-4a 16 2f ad 8c 1e 45 T...."..J./...E
0825 - 32 66 6a d0 ea 97 92 15-ba e8 bf 83 b3 ae 85 2fj............
0834 - 47 02 81 b6 37 3f 59 97-e0 cd 55 b7 75 fb cb G...7?Y...U.u..
0843 - 75 3e d0 6c d0 01 84 95-45 4b 74 5a 46 ed f4 u>.l....EKtZF..
0852 - e0 a3 47 df 3a e1 ec 72-71 69 5e f5 54 31 4d ..G.:..rqi^.T1M
0861 - 45 7f 61 0b 03 7a f2 d0-12 66 27 38 7d 9b 81 E.a..z...f'8}..
0870 - 64 f0 30 51 c3 63 8d 7e-ed 0e 1e 34 05 61 8d d.0Q.c.~...4.a.
087f - 3a 05 f3 d1 b4 b5 e3 da-39 6d be 51 fe 8a b0 :.......9m.Q...
088e - 6f fd 17 35 1c 0b 8d 77-f4 f8 b4 88 7b 72 89 o..5...w....{r.
089d - c9 05 da ...
unprotectedAttrs:
<EMPTY>

Przesłanie pliku

Wysyłam plik, nie wymaga to uwierzytelnienia.

1
2
curl --data-binary @gotowka.xml.enc \
https://test.giif.mofnet.gov.pl/api/rest2018/instytucje/0123456789/pliki/

Otrzymuję informację zwrotną. Istotny jest atrybut id, który pozwoli uzyskać informacje o statusie pliku.

1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<plk:plik xmlns:plk="http://www.giif.mofnet.gov.pl/xsd/rest/pliki20171017"
id="2"
hashZaszyfrowany="47F0D3338A4DDE8657B49F5B9CFAC8C088C27BDB4855C7BC1E99EBC94C125C06"
status="Z"
dataOtrzymania="2019-04-05T14:48:39"/>