- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [VB][openSSL] Errore durante l'encrypt della stringa con certificato
-
[VB][openSSL] Errore durante l'encrypt della stringa con certificato
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):openssl rsautl -encrypt -in esempio.txt -out esempio.encrypted -inkey certificate.cer -certin -pkcs
Decriptare:
openssl rsautl -decrypt -inkey cert\private.pem -in esempio.encrypted -out esempio.decrypted
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:
RSA operation error 21060:error:0406506C:rsa routines:rsa_ossl_private_decrypt:data greater than mod len:crypto\rsa\rsa_ossl.c:401:
Codice VB:
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)
Cosa non va secondo voi?
Grazie.