La cadena original ya vi que esta bien esta igual a como lo pone el validaCFD y copia la rutina del sello que por ahi un usuario la puso en este fabuloso foro:
La DLL la baje hace unos momentos ya que tenia una version anterior ya la actualiza la puse y nada, ya no se mas que puede ser
Adjunto XML
GRACIAS
Código: Seleccionar todo
Sub GenerarSello()
Dim privateCert As New X509Certificate2(DirPfx, "paswword", X509KeyStorageFlags.Exportable)
Dim privateKey As RSACryptoServiceProvider = DirectCast(privateCert.PrivateKey, RSACryptoServiceProvider)
Dim privateKey1 As New RSACryptoServiceProvider()
privateKey1.ImportParameters(privateKey.ExportParameters(True))
Dim stringCadenaOriginal() As Byte = System.Text.Encoding.UTF8.GetBytes(strCadenaOriginal)
Dim signature As Byte() = privateKey1.SignData(stringCadenaOriginal, "SHA256")
Dim sello256 As String = Convert.ToBase64String(signature)
'para verificar el sello
Dim isValid As Boolean = privateKey1.VerifyData(stringCadenaOriginal, "SHA256", signature)
Dim Root As XElement = XDocument.Load(direccionfinal).Root
Root.@Sello = sello256
Root.Save(direccionfinal)
End Sub