- 3.0.4.0 2026-05-20 Actualización tsPDF
This commit is contained in:
36
Depurador TSpdfUtils/Form1.vb
Normal file
36
Depurador TSpdfUtils/Form1.vb
Normal file
@@ -0,0 +1,36 @@
|
||||
Imports System.IO
|
||||
Imports System.Security.Cryptography
|
||||
Imports System.Security.Cryptography.X509Certificates
|
||||
|
||||
Public Class Form1
|
||||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||
FirmaPDFPFX("prueba", "prueba", "prueba", "c:\tmp\pruebafirmada.pdf", True, True)
|
||||
End Sub
|
||||
|
||||
Public Shared Sub FirmaPDFPFX(Razon As String, Contacto As String, Localizacion As String, FicheroPdfDef As String, EliminaFirmasAnteriores As Boolean, Optional EliminaFicheroDestino As Boolean = False)
|
||||
Dim p As String = "prueba1234."
|
||||
Try
|
||||
Dim bpfx = IO.File.ReadAllBytes("C:\tmp\mmm.pfx")
|
||||
Dim bpdf = IO.File.ReadAllBytes("c:\tmp\E_2026-00322_sellado.pdf")
|
||||
Dim pk As New X509Certificate2(bpfx, p, X509KeyStorageFlags.Exportable)
|
||||
CambiaKeyContainerName(pk)
|
||||
If pk.NotAfter < Now Then Throw New Exception("El certificado está caducado")
|
||||
' If Not pk.Subject.Contains("CN=" & DocumentoIdentidad) Then Throw New Exception("El certificado no pertenece al validador")
|
||||
Dim ms As New MemoryStream
|
||||
'tsUtilsPDF.pdf.FirmaPDF(pk, "", PdfStream, ms, Razon, Contacto, Localizacion, RutaTmp, EliminaFirmasAnteriores)
|
||||
TSpdfUtils.Firmas.FirmaPDF(bpfx, p, "", New MemoryStream(bpdf), ms, Razon, Contacto, Localizacion, EliminaFirmasAnteriores)
|
||||
If EliminaFicheroDestino AndAlso IO.File.Exists(FicheroPdfDef) Then IO.File.Delete(FicheroPdfDef)
|
||||
IO.File.WriteAllBytes("c:\tmp\pruebafirmada.pdf", ms.ToArray)
|
||||
Catch ex As Exception
|
||||
Throw New Exception(ex.Message, ex)
|
||||
End Try
|
||||
End Sub
|
||||
Public Shared Sub CambiaKeyContainerName(ByRef Certificado As System.Security.Cryptography.X509Certificates.X509Certificate2)
|
||||
Dim rsa As RSACryptoServiceProvider = CType(Certificado.PrivateKey, RSACryptoServiceProvider)
|
||||
Dim csparams As New CspParameters
|
||||
csparams.KeyContainerName = "TECNOSIS-" & Guid.NewGuid.ToString
|
||||
Dim rsa2 As New RSACryptoServiceProvider(csparams)
|
||||
rsa2.ImportParameters(rsa.ExportParameters(True))
|
||||
Certificado.PrivateKey = rsa2
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user