Primero se debe tener la LlavePrivada.key en formato .XML, para eso usar el OpenSSlKey.exe (http://www.jensign.com/opensslkey/), este programa extrae/convierte el .KEY en XML en pantalla, hay que copiar y pegar de la pantalla (Prompt) a un archivo de Texto, de manera que todo quede en una sola línea, eso es la LlavePrivada en XML.
Si necesitan que la LlavePrivada esté segura, el archivo se puede encriptar con AesCryptoServiceProvider que es una encriptación mucho más segura que la que usa hacienda (en otro tema pondré un ejemplo de como hacerlo).
Código Visual Basic:
Dim SelloDigital As String
Dim LLavePrivada As String = IO.File.ReadAllText("LlavePrivada.XML", System.Text.Encoding.UTF8)
'Ejemplo de Cadena Original.
Dim CadenaOriginalEnBytes() As Byte = System.Text.Encoding.UTF8.GetBytes("||2.0|ABCD|2|03-05-2010T14:11:36|49|2008|INGRESO|UNA SOLA EXHIBICIÓN|2000.00|00.00|2320.00|PAMC660606ER9|CONTRIBUYENTE PRUEBASEIS PATERNOSEIS MATERNOSEIS|PRUEBA SEIS|6|6|PUEBLA CENTRO|PUEBLA|PUEBLA|PUEBLA||MÉXICO|72000|CAUR390312S87|ROSA MARÍA CÁLDERON URIEGAS|TOPOCHICO|52|JARDINES DEL VALLE|NUEVO LEÓN|MEXICO|95465|1.00|SERVICIO|01|ASESORIA FISCAL Y ADMINISTRATIVA|2000.00|IVA|16.00|320.00||")
Dim EncriptaSHA1 As New Security.Cryptography.SHA1CryptoServiceProvider
CadenaOriginalEnBytes = EncriptaSHA1.ComputeHash(CadenaOriginalEnBytes)
Using RSA As New RSACryptoServiceProvider
RSA.FromXmlString(LLavePrivada)
Dim RSAFormatter As New RSAPKCS1SignatureFormatter(RSA)
RSAFormatter.SetHashAlgorithm("SHA1")
CadenaOriginalEnBytes = RSAFormatter.CreateSignature(CadenaOriginalEnBytes)
SelloDigital = Convert.ToBase64String(CadenaOriginalEnBytes)
End Using
'------------------------------------------------------------
Nota: la Cadena Original que se muestra no es del CFDI Versión 3, es sólo una muestra, obviamente debe armarse previamente con sus datos, pero el proceso del firmado es correcto y ya verificado en la página del SAT.
A mi me costó mucho trabajo hacerlo, espero les sea útil. Saludos!

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03
.
Firmado Digital del CFDI en Visual Basic 2010 (.NET 4).
-
- Mensajes: 6
- Registrado: Mié Ene 18, 2012 8:30 pm
-
- Mensajes: 158
- Registrado: Mié Ene 11, 2012 2:08 pm
- Contactar:
Re: Firmado Digital del CFDI en Visual Basic 2010 (.NET 4).
Tambien pueden incorporar el archivo opensslkey.cs directamente a su proyecto .NET y tendran lo necesario para acceder al archivo .key a traves del pwd, sin necesidad de usar un XML con la llave privada y sin necesidad de usar openssl.exe.