Podpora vývojářů

Diskuzní server pro podporu tvorby aplikací pro transakční část PVS.
Vítá vás Podpora vývojářů Přihlásit se | Připojit | Nápověda
v Vyhledat

Šifrování v NETu

Poslední příspěvek 04-18-2011, 13:22 od MarekTP. Počet odpovědí: 0
Řadit příspěvky: Předchozí Další
  •  04-18-2011, 13:22 1560

    Šifrování v NETu

    Dobrý den,
    dostal jsem se myšlenkově do úzkých a prosím o radu.
    Součástí našeho software je program pro odesílání e-podání na ČSSZ. S přechodem na VREP a masivním vyřazováním WinXP dozrála potřeba upravit aplikaci (což znamená opustit berličku CAPICOM a přejít na čistý .NET). Změna na VREP je triviální, vygenerovaná XML se mi daří digitálně podepsat, ale zašifrování ani omylem. Zkoušel jsem 2 varianty:

    Public Function CryptFile(ByVal fn As String, ByVal cert As X509Certificate2) As String
    Try
    Dim tDESkey As New TripleDESCryptoServiceProvider()
    tDESkey.Key = cert.GetPublicKey()
    tDESkey.Mode = CipherMode.ECB
    tDESkey.Padding = PaddingMode.PKCS7
    Dim Encryptor As ICryptoTransform = tDESkey.CreateEncryptor()
    Return (ConvertByteArrayToString(Encryptor.TransformFinalBlock(eXml, 0, eXml.Length)))
    Catch ex As Exception
    Return ""
    End Try
    End Function


    Public Function CryptFile(ByVal fn As String, ByVal cert As X509Certificate2) As String
    Dim rsacsp As New RSACryptoServiceProvider()
    Dim csp As New CryptoConfig
    Try
    rsacsp = CType(cert.PublicKey.Key, RSACryptoServiceProvider)
    Dim bytes() As Byte = FileToBytes(fn)
    Dim Crypted() As Byte = rsacsp.Encrypt(bytes, False)
    'retString = Convert.ToBase64String(Crypted)
    Catch ex As Exception
    MsgBox(ex.Message)
    End Try
    End Function


    Elaborováním s parametry i postupy se vždy dostávám k hláškám o neplatnosti certifikátu DIS.CSSZ.2011 pro toto použití, špatné délce certifikátu (tDESkey.Key = cert.GetPublicKey), nebo o špatné délce dat ( ICryptoTransform ). Nápady jak vyčíst z certifikátu typ šifry a použít správný algoritmus došly, podle dokumentace od ČSSZ by to měla být 3DES.

    Pomůže mi někdo s nasměrováním, prosím?
Zobrazit jako kanál RSS ve formátu XML