Mam problem który mnie zatrzymał na dość pare dni, przechodząc do sedna:
- używam authorization challenge
- otrzymany challenge i timestamp wykorzystuje do:
-uzupełnienia challenge w InitSessionTokenRequestExample.xml
-utworzenia ciagu token+"|"+timestamp.ToUnixTimeMilliseconds(), zaszyfrowania go(kluczem publicznym z https://ksef-test.mf.gov.pl, kod c# do szyfrowania podany
poniżej) i uzupełniania pola Token w InitSessionTokenRequestExample.xml(zmienna token użyta w ciągu to token wygenerowany na ksef-test.mf.gov.pl/web) - w InitSessionTokenRequestExample.xml jako identifier podaje swój nip
- wysyłam request za pomocą postmana
odpowiedź jaką uzyskuje:
"exceptionDescription": "Nieprawidłowo zaszyfrowana treść."
Próbowałem rozwiązań z innych wątków na tej stronie czy szyfrowania online jednak z tym samym rezultatem. W każdym przypadku otrzymuje 344 znaki w base64
Co może być niepoprawne? Za wszystkie odpowiedzi z góry dziękuje
public static string Encrypt(string plainText)
{
UnicodeEncoding ByteConverter = new UnicodeEncoding();
byte[] bytesToEncrypt = ByteConverter.GetBytes(plainText);
RSA rsa = RSA.Create();
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
{
int ReadBytes;
RSA.ImportSubjectPublicKeyInfo(ksefKey, out ReadBytes);
byte[] encryptedData = RSA.Encrypt(bytesToEncrypt, true);
Console.WriteLine("encryption successful");
return Convert.ToBase64String(encryptedData);
}
}