Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] OpenSSL per Andrea

Sono alle prese con la tua stessa difficoltà criptare il codice fiscale. Su 
un documento che mi hanno mandato dice che bisogna criptare BASE64 (RFC 
1521).
In rete ho trovato una classe che cripta BASE64 ma non (RFC 1521).
Ho scaricato una versione di OpenSSL (la più recente) ma non so se è quella 
giusta e non ho idea di come si usa.
Il documento parla di riga di comando e di un file CF.Txt con il CF in 
chiaro, devo crearlo io?
Grazie Carmelo

                           "START /WAIT /MIN §OPENSSL§ base64 -base64 -e  -out §FILEOUT2§ -in §FILEOUT1§"
Dim myPath As String
Dim ff As Integer
Dim cmdLine As String
Dim a As Long
  myPath = App.path & "\MioPath\"
 
  'Contenuto File Bat per conversione
  cmdLine = CMD_LINE
  cmdLine = Replace$(cmdLine, "§FILECERTIFICATO§", myPath & "mefpp.cer")
  cmdLine = Replace$(cmdLine, "§OPENSSL§", myPath & "openssl.exe")
  cmdLine = Replace$(cmdLine, "§FILEIN§", myPath & "cf_chiaro.txt")
  cmdLine = Replace$(cmdLine, "§FILEOUT1§", myPath & "cf_chiaro.enc")
  cmdLine = Replace$(cmdLine, "§FILEOUT2§", myPath & "cf_chiaro.enc.b64")
 
 
  'Scrivo CodFisc in chiaro
  ff = FreeFile
  Open myPath & "cf_chiaro.txt" For Output As #ff
  Print #ff, sCodFisc
  Close ff
 
  'Lancio Bat Conversione (precompilato)
  ff = FreeFile
  Open myPath & "SSL.BAT" For Output As #ff
  Print #ff, cmdLine
  Close ff
  RunAndWait myPath & "SSL.bat", frmMain.hWnd, 0
  'a = ShellExecute(0, vbNullString, myPath & "SSL.bat", vbNullString, "",
0)
 
  'Rileggo Cod Fisc
  ff = FreeFile
  Open myPath & "cf_chiaro.enc.b64" For Input As #ff
  Input #ff, CriptCodFisc
  Close ff
 
  CriptCodFisc = Replace$(CriptCodFisc, Chr$(10), "")  'capire come mai,
con i Batch poi non funziona, ma nel loro esempio XML non ci sono i
CHR$(10)
End Function


Cosa sono delle DLL?
Carmelo 

 Cosa sono delle DLL?
Bhe, almeno questo cercalo su google, è pieno di esempi.

> Bhe, almeno questo cercalo su google, è pieno di esempi.
Infatti, non trovando niente su Api guide  ho fatto una ricerca su google e 
ho trovato questa routine.
L'ho modificata e adattata per il tuo codice e funziona.
L'unico problema è che, nonostate abbia impostato vbHide, produce uno 
sfarfallio (sarà la finestra del file .Bat che si apre e chiude) sulla barra 
delle applicazioni di windows per tutta la durata del ciclo delle 
prestazioni.
Non so se è normale ma è bruttissimo da vedere.
Private Function RunAndWait(ByVal ComLine As String) As Boolean
    Dim pi As PROCESS_INFORMATION
    Dim si As STARTUPINFO
    si.wShowWindow = vbHide
    si.dwFlags = STARTF_USESHOWWINDOW
    si.cb = Len(si)
    If CreateProcessA(0&, ComLine, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS, 0&, 
0&, si, pi) Then
        WaitForSingleObject pi.hProcess, INFINITE
        CloseHandle pi.hProcess
        RunAndWait = True
        Exit Function
    End If
    RunAndWait = False
End Function
E comunque ti ringrazio per l'aiuto che mi hai dato.
Sei stato gentilissimo.
Ciao Carmelo 

 prestazioni.
Si questo è un problema.
Di OpenSSL c'era anche qualche altra versione, ma io poi per fretta ho
usato quello.
Ciò non toglie che sia possibile farlo senza farlo vedere, ma non c'ho mai
perso tempo.
Avevo provato anche a codificare tutti i codfisc nel file di testo e
farglielo fare 1 volta tutti insieme, ma mi dava problemi (forse codificava
male, non ricordo)