Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Function GetCertificado() As X509Certificate2
- Dim store As X509Store = New X509Store
- store.Open((OpenFlags.ReadOnly Or OpenFlags.OpenExistingOnly))
- Dim collection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
- Dim fcollection As X509Certificate2Collection = CType(collection.Find(X509FindType.FindByTimeValid, DateTime.Now, False), X509Certificate2Collection)
- Dim scollection As X509Certificate2Collection = X509Certificate2UI.SelectFromCollection(fcollection, "Certificados", "Seleccione un certificado", X509SelectionFlag.SingleSelection)
- If (scollection.Count = 0) Then
- Return Nothing
- End If
- Return scollection(0)
- End Function
- Public Sub Sign(cert As X509Certificate2, route as String)
- Dim doc As XmlDocument = New XmlDocument()
- doc.LoadXml(File.ReadAllText(route))
- Dim signedxml As SignedXml = New SignedXml(doc)
- Dim reference As Reference = New Reference()
- reference.Uri = ""
- Dim env As XmlDsigEnvelopedSignatureTransform = New XmlDsigEnvelopedSignatureTransform()
- reference.AddTransform(env)
- signedxml.AddReference(reference)
- Dim KeyInfo As KeyInfo = New KeyInfo()
- KeyInfo.AddClause(New KeyInfoX509Data(cert))
- signedxml.KeyInfo = KeyInfo
- signedxml.SigningKeyName = cert.Subject
- signedxml.SigningKey = cert.PrivateKey '<--- origen de error'
- signedxml.ComputeSignature()
- Dim xmlsig As XmlElement = signedxml.GetXml()
- doc.DocumentElement.AppendChild(doc.ImportNode(xmlsig, True))
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement