meteré mi cuchara tambien jejeje
lo que yo hice para el caso especifico de la fac electronica y ejecuciones de un bat con comandos openSSL es lo que copio mas abajo. Aclaro que en los comandos openSSL concateno variables y propiedades de un formulario, revisalo y ajustalo a tus necesidades, si hay alguna duda la revisamos
Saludos
#define CRLF CHR(13)+CHR(10)
DECLARE INTEGER ShellExecute IN SHELL32.DLL ;
INTEGER lnHWnd, ;
STRING lcAction, ;
STRING lcFileName, ;
STRING lcExeParams, ;
STRING lcDefDir, ;
INTEGER lnShowWindow
lstrtmpDGST = ""
*** Según Anexo 20 hasta antes del 23 de sep de 2010
lstrtmpDGST = "openssl dgst -md5 -sign " + JUSTFNAME(this.lstrKeyFile) + ".pem -out Bin" + this.lstrBaseName + " " + this.lstrBaseName + CRLF
*** Modificación al Anexo 20 del 23 de Sep de 2010 especifica digestión SHA-1 aplica para 2011
*lstrtmpDGST = "openssl dgst -sha1 -sign " + JUSTFNAME(this.lstrKeyFile) + ".pem -out Bin" + this.lstrBaseName + " " + this.lstrBaseName + CRLF
STRTOFILE("openssl pkcs8 -inform DER -in " + this.lstrKeyFile + " -passin pass:" + this.lstrClaveKeyFile + " -out " + ;
JUSTFNAME(this.lstrKeyFile) + ".pem" + CRLF + ;
"openssl x509 -inform DER -outform PEM -in " + this.lstrCerFile + " -pubkey > " + JUSTFNAME(this.lstrCerFile) + ".pem" + CRLF + ;
lstrtmpDGST + ;
"openssl base64 -in Bin" + this.lstrBaseName + " -out B64" + this.lstrBaseName + CRLF + ;
"openssl x509 -in " + JUSTFNAME(this.lstrCerFile) + ".pem -serial -noout > Serie" + JUSTSTEM(this.lstrCerFile) + ".txt" + CRLF + ;
"openssl x509 -in " + JUSTFNAME(this.lstrCerFile) + ".pem -startdate -noout > FI" + JUSTSTEM(this.lstrCerFile) + ".txt" + CRLF + ;
"openssl x509 -in " + JUSTFNAME(this.lstrCerFile) + ".pem -enddate -noout > FF" + JUSTSTEM(this.lstrCerFile) + ".txt" + CRLF + ;
"COPY TEMP\eok.txt", ;
"DER2PEM_SelloDigital.bat")
ShellExecute(0,"open","DER2PEM_SelloDigital.bat","","",0)