Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OnePlus Nord 2, un ottimo smartphone migliorato solo dove serviva. La recensione
OnePlus Nord 2, un ottimo smartphone migliorato solo dove serviva. La recensione
OnePlus Nord 2 si è migliorato rispetto al suo predecessore solo in alcune aree cruciali: fra le novità più evidenti infatti processore, fotocamera posteriore e ricarica rapida. E' uno dei midrange più vicini in assoluto a un top di gamma per quanto riguarda l'esperienza d'uso, e ha tutto quello che serve anche all'utente più esigente
ASUS ROG Zephyrus M16 è il notebook gaming dallo schermo molto particolare
ASUS ROG Zephyrus M16 è il notebook gaming dallo schermo molto particolare
L'accoppiata tra CPU Intel Core i9 e GPU NVIDIA GeForce RTX 3070 garantisce prestazioni sempre molto elevate con questo notebook, che ha dalla sua uno chassis robusto e dal peso contenuto viste le dimensioni. Più di tutto però spicca lo schermo da 16 pollici, con una risoluzione elevata e soprattutto un rapporto di 16:10 tra i lati che lo rende unico sul mercato
Elgato Facecam: una webcam per i gamer
Elgato Facecam: una webcam per i gamer
Elgato, azienda specializzata in periferiche per i giocatori e per gli streamer, ha portato a termine i suoi studi su una webcam altamente ottimizzata per gli usi videoludici. Ecco come si comporta
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-05-2021, 22:52   #1
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 970
[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):
Codice:
openssl rsautl -encrypt -in esempio.txt -out esempio.encrypted -inkey certificate.cer -certin -pkcs
Decriptare:
Codice:
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:
Codice:
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:
Codice:
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.
__________________
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2021, 09:27   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2668
Quando salvi i dati criptati li salvi come raw bytes o scrivi il base64? openssl scrive i raw bytes
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2021, 09:29   #3
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 970
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Quando salvi i dati criptati li salvi come raw bytes o scrivi il base64? openssl scrive i raw bytes
Ciao, scrivo il valore associato alla variabile base64.

Come faccio ad ottenere i raw bytes?

Grazie.
__________________
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2021, 09:47   #4
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2668
Li hai già, sono quelli contenuti in encryptedBytes. Li puoi scrivere ad esempio con File.WriteAllBytes
https://docs.microsoft.com/en-us/dot...s?view=net-5.0
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2021, 10:50   #5
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 970
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Li hai già, sono quelli contenuti in encryptedBytes. Li puoi scrivere ad esempio con File.WriteAllBytes
https://docs.microsoft.com/en-us/dot...s?view=net-5.0
Ho provato a decriptare con la chiave privata e funziona.

La codifica in base64 è necessaria, infatti codifico in base64 e scrivo il file.

Successivamente, come prova, con openSSL decodifico e decripto ottengo il messaggio di errore.
__________________
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2021, 12:58   #6
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2668
Non ho provato il tuo codice VB ma ti spiego cosa ho fatto:
1. ho creato un file txt scrivendoci dentro qualcosa e l'ho criptato con il primo comando openssl che hai indicato
2. ho aperto il file criptato e non è in base64 (si riconoscerebbe perché sarebbe composto da caratteri ASCII)

Quindi sono abbastanza sicuro che se vuoi decriptare con il secondo comando openssl che hai indicato, non devi salvare il file in base64.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 07-05-2021, 08:27   #7
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 970
Grazie per le tue prove.

Purtroppo il file da inviare deve essere in base64 per questo ho fatto anche la prova di codifica/decodifica in base64.
__________________
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OnePlus Nord 2, un ottimo smartphone migliorato solo dove serviva. La recensione OnePlus Nord 2, un ottimo smartphone migliorato ...
ASUS ROG Zephyrus M16 è il notebook gaming dallo schermo molto particolare ASUS ROG Zephyrus M16 è il notebook gamin...
Elgato Facecam: una webcam per i gamer Elgato Facecam: una webcam per i gamer
vivo X60 Pro: top di gamma tascabile con super fotocamera Zeiss vivo X60 Pro: top di gamma tascabile con super f...
LG OLED EVO TV G1 55 pollici: l'OLED alla massima potenza. La recensione LG OLED EVO TV G1 55 pollici: l'OLED alla massim...
Modulo russo Nauka: i test hanno success...
Rivian raccoglie nuovi finanziamenti, in...
Crescono le vendite di notebook con fort...
Il modulo russo Nauka ha acceso con succ...
Tesla Semi: le batterie da quasi 900kWh ...
La missione NASA Europa Clipper sarà lan...
Gorilla Glass DX per proteggere e miglio...
Intel avverte: il terzo trimestre diffic...
Annunciato il decimo volo di NASA Ingenu...
Radeon RX 6600: debutto vicino, prezzi g...
G.Skill Royal Elite DDR4-4000: 32 GB, ti...
Niente volante tradizionale per Tesla Mo...
Più wafer a 10 che a 14 nanometri...
Le immagini del fairing con paracadute d...
NASA InSight ha svelato cosa c'è sotto l...
LibreOffice 7.1.5
Firefox Portable
Firefox 90
Skype
Chromium
Opera Portable
Opera 77
Google Chrome Portable
VirtualBox
Dropbox
7-Zip
K-Lite Mega Codec Pack
K-Lite Codec Pack Full
K-Lite Codec Pack Standard
K-Lite Codec Pack Basic
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:47.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Served by www1v