KSEF Problem z autoryzacją za pomocą tokenu

KSEF Problem z autoryzacją za pomocą tokenu
J1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Mam problem z autoryzacją za pomocą tokenu. Obsługa jest napisana w postaci funkcji w assemblies mssql2016 (framework 4.8). Nie jest możliwy do użycia wyższy framework.

public static SqlString Ksef2_GetEncodeOAEP(SqlString base64Cert, SqlString plainText)
{
    if (base64Cert.IsNull || plainText.IsNull)
        return SqlString.Null;

    try
    {
        byte[] certBytes = Convert.FromBase64String(base64Cert.Value);
        var cert = new X509Certificate2(certBytes);
        using (RSA rsa = cert.GetRSAPublicKey())
        {
            byte[] dataToEncrypt = Encoding.UTF8.GetBytes(plainText.Value);
            byte[] encrypted = rsa.Encrypt(dataToEncrypt, RSAEncryptionPadding.OaepSHA256);
            return Convert.ToBase64String(encrypted);
        }
    }
    catch (Exception ex)
    {
        throw new ApplicationException("Encryption failed: " + ex.Message, ex);
    }
}

Parametry:
base64Cert = wartość "certificate" dla "usage" = "KsefTokenEncryption"
plainText = token|timestamp
Po wywołaniu dostaję błąd:

450 Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu
Invalid token encoding

Proszę o jakąś podpowiedź.

hzmzp
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 718
0

Za mały kawałek kodu dałeś, tu nie ma za bardzo czego weryfikować.
Tu https://github.com/CIRFMF/ksef-client-csharp masz demo od naszego państwa sprawdź czy czegoś nie namieszałeś, albo wręcz użyj gotowego kodu :)

J1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

dzięki za zmotywowanie czy czegoś nie namieszałam :)
przy sklejaniu {ksefToken}|{timestampMs} timestampMs miałem za dokładnie, z wartością po przecinku.
co do użycia gotowego kodu to jestem ograniczony z użyciem klas/metod do tych z framework 4.8 :(

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.