Vai al contenuto
PLC Forum


[VB][openSSL] Errore durante l'encrypt della stringa con certificato


robertosalemi

Messaggi consigliati

robertosalemi

Ciao, 
è la prima volta che utilizzo un certificato per criptare i dati.

 

Nella mia macchina ho installato openSSL, tramite il prompt dei comandi invio i due comandi:
Criptare (fornita da chi mi ha dato il certificato X.509 contenente la chiave pubblica con padding PKCS#1 v 1.5):
[code]
openssl rsautl -encrypt -in esempio.txt -out esempio.encrypted -inkey certificate.cer -certin -pkcs
[/code]

 

Decriptare:
[code]
openssl rsautl -decrypt -inkey cert\private.pem -in esempio.encrypted -out esempio.decrypted
[/code]

 

La stringa all'interno del file esempio.txt viene restituita correttamente. 

 

Vorrei replicare le stesse istruzioni all'interno di una solution in VB con VisualStudio2019, cripto i miei dati (una stringa), ma se provo a decryptarla tramite openSSL ottengo l'errore:
[code]
RSA operation error
21060:error:0406506C:rsa routines:rsa_ossl_private_decrypt:data greater than mod len:crypto\rsa\rsa_ossl.c:401:
[/code]

 

Codice VB:
[code]
Dim cert As X509Certificate2
Dim strToEncrypt As String
Dim encryptedString As String

 

' Lettura del certificato
cert = New X509Certificate2(Path.Combine(Directory.GetCurrentDirectory(), "certificate.cer"), "", X509KeyStorageFlags.Exportable)

 

'String da crittografare
strToEncrypt = "Questa è la mia stringa"

 

Dim rsaProvider As RSACryptoServiceProvider = DirectCast(cert.PublicKey.Key,  RSACryptoServiceProvider)

 

'Convert the string into a Byte Array and encrypt w/ public key
Dim bytesToEncrypt() As Byte = Encoding.ASCII.GetBytes(strToEncrypt)
Dim encryptedBytes() As Byte = rsaProvider.Encrypt(bytesToEncrypt, False)

 

Dim base64 As String = Convert.ToBase64String(encryptedBytes)
[/code]

 

Cosa non va secondo voi?

Grazie.

Link al commento
Condividi su altri siti


Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...