Ver Mensaje Individual
  #95  
Antiguo 13-05-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Reputación: 14
dado Va por buen camino
Cita:
te paso el codigo que yo utilice para convertir el archivo a .pem.

Código:
//---------------------------------------------------------procedure TfrmEmpresa.KeyToPem;var BatFile: TStringList; LlaveDerToPEM, OutFile, BatFileName: string;begin //Convertimos el CERTIFICADO de formato DER a formato PEM con la siguiente instrucción de OpenSSL OutFile:= FolderFilesPEM + ExtractFileName(txtPrivateKey.Text)+'.pem'; LlaveDerToPEM := 'C:\MiFactura\Bin\openssl pkcs8 -inform DER -in '+ txtPrivateKey.Text +' -out ' + OutFile; //Creamos el archivo .Bat BatFileName:= 'C:\MiFactura\Bin\'+LlaveBat; BatFile:= TStringList.Create; BatFile.Add(LlaveDerToPEM); BatFile.SaveToFile(BatFileName); try WinExecAndWait32(BatFileName,1); except on E : Exception do ShowMessage(E.ClassName+' Se provoco la excepción : '+E.Message); end; if FileExists(OutFile) then begin if LengthFile(OutFile) = 0 then MessageDlg('Verifique que la contraseña sea correcta e intentelo nuevamente.', mtError, [mbOk], 0); end; PrivateKeyPemFile:= OutFile;end;//---------------------------------------------------------
Saludos.
No he probado esta rutina aunque parece muy buena, ahora, si me permites dos consejos :

1. Enmarca los nombre de archivo con comilla doble, eso te permite usar directorios con nombres largos y espacios entre ellos
2. usa la opcion -passin para pasarle la clave y que no te la pida en la ventana de MSDOS

Es decir, te recomiendo que agregues:

Código Delphi [-]
clave := InputBox('SE REQUIERE LA CLAVE','Introduzca su Clave Privada del Certificado','');
...
...
LlaveDerToPEM := 'C:\MiFactura\Bin\openssl pkcs8 -inform DER -in "'+ txtPrivateKey.Text  +'" -passin pass:' + clave + ' -out "' + OutFile +'"';
  //Creamos el archivo .Bat << nota las comillas doble " que se agregaron

//De esta forma txtPrivateKey.Text puede ser = 'c:\archivos de programa\mis documentos\es decir\nombres largos y con espacios\privatekey.key'

Última edición por dado fecha: 13-05-2010 a las 23:23:48.
Responder Con Cita