JPK - szyfrowanie RSA

0

W specyfikacji interfejsu, podają PEM jako klucz, który ma zawartość BEGIN CERTIFICATE, zamiast BEGIN PUBLIC KEY. Rozmiar wynikowy mi się nie zgadza, bo klucz jest za długi. Czy komuś udało się to zaimplementować?

0

Akurat to udało się zrobić bez problemu :)

    var cert = new X509Certificate2(File.ReadAllBytes("rsa.pem"));
    using(rsa = (RSACryptoServiceProvider)cert.PrivateKey)
    {
         return rsa.Encrypt(data, false);
    }

Kod pisany z palca może się nie kompilować.

0

Mniej więcej tak, chyba jest OK. Zmieniłem tylko na PublicKey.Key. Długość wynikowa szyfru po Base64 to 344 znaki więc tak jak powinno być.
Zostaje ostatnia część - podpisanie całego wynikowego XMLa Xadesem. Doradzisz coś? Jakieś liby do komunikacji z czytnikiem kart?

0

Podepnę się pod wątek. Jako firma poszukujemy kogoś do implementacji szyfrowania i wysłania JPK poprzez bramkę JSON@MF. Byłby ktoś chętny się podjąć? Rzecz jasna za godne $$.

0
KPJ napisał(a):

Mniej więcej tak, chyba jest OK. Zmieniłem tylko na PublicKey.Key. Długość wynikowa szyfru po Base64 to 344 znaki więc tak jak powinno być.
Zostaje ostatnia część - podpisanie całego wynikowego XMLa Xadesem. Doradzisz coś? Jakieś liby do komunikacji z czytnikiem kart?

Tak, oczywiście powinien tutaj być klucz publiczny. Do wczytania certyfikatu wykorzystałem klasę z frameworka - X509Store. Przy jej pomocy można wyświetlić wszystkie zainstalowane w systemie certyfikaty, użytkownik sobie wybiera, którym podpisać.

1

Późno się za to zabieracie ;P

1 użytkowników online, w tym zalogowanych: 0, gości: 1