Stefan Olszewski napisał(a):
Jako że jest to mój pierwszy post witam wszystkich bardzo serdecznie.
A teraz do sedna i pytania które mnie nurtują:
- czy szyfrowanie encryptedSymmetricKey używanego przy otwarciu sesji interaktywnej oraz Tokena KsEF pobranego w aplikacji MF i używanego do uwierzytelniania wykonuje się tą samą metoda tzn RSA_OAEP z SHA256
- W jakim formacie ma być encryptedSymmetricKey wysyłany do szyfrowania (ciąg bajtów, ciąg bajtów przekształcony do HEX, coś innego ) ?
Do zaszyfrowania używam openssl.
Zadałem pytanie o szyfrowanie przy uwierzytelnianiu i szyfrowanie klucza symetrycznego, bo szyfrując klucz symetryczny identycznie jak token+timestamp i wysyłając go wraz z IV aby otworzyć sesję interaktywną otrzymuję:
{
"referenceNumber": "20251119-SO-4AE6762000-17B3E3AB18-BA",
"validUntil": "2025-11-20T09:48:58.5944994+00:00"
}`
Sprawdzam status tej sesji i otrzymuję:
"status": {
"code": 415,
"description": "Błąd odszyfrowania dostarczonego klucza",
"details": [
"Rozszyfrowania klucza symetrycznego zakończone błędem"
]
},
"validUntil": "2025-11-20T09:48:58.5944994+00:00"
}
W dokumentacji wyczytałem, że szyfrowanie klucza symetrycznego ma być odbywać się algorytmem RSAES-OAEP (padding OAEP z funkcją MGF1 opartą na SHA-256 oraz skrótem SHA-256), token+timestamp zaś algorytmem RSA-OAEP z funkcją skrótu SHA-256 (MGF1), więc to chyba to samo.
Niestety zaszyfrowany tokena+timestamp pozwala się bez problemu uwierzytelnić ale zaszyfrowanie klucza symetrycznego i użycie go do otwarcia sesji już kończy się niepowodzeniem.
Dla porządku zamieszczam jeszcze batch który używam do szyfrowania:
openssl ^
pkeyutl ^
-encrypt ^
-inkey ksef_public_key.key ^
-in plik_do_zakodowania.bin^
-out plik_zakodowany.bin ^
-pubin ^
-pkeyopt rsa_padding_mode:oaep ^
-pkeyopt rsa_oaep_md:sha256
Ma ktoś pomysł co robię źle ?