![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(Go) Examine KeyInfo Certificate in XML SignatureThis example loads signed XML and gets the signing certificate, assuming the certificate is contained in X509Certificate within the KeyInfo.
// This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. dsig := chilkat.NewXmlDSig() sbXml := chilkat.NewStringBuilder() success := sbXml.LoadFile("c:/aaworkarea/elias/3/face_f09006808443a699d1b.xml","utf-8") if success != true { fmt.Println("Failed to load XML file.") dsig.DisposeXmlDSig() sbXml.DisposeStringBuilder() return } success = dsig.LoadSignatureSb(sbXml) if success != true { fmt.Println(dsig.LastErrorText()) dsig.DisposeXmlDSig() sbXml.DisposeStringBuilder() return } // Get the KeyInfo XML. xmlKeyInfo := dsig.GetKeyInfo() if dsig.LastMethodSuccess() != true { fmt.Println(dsig.LastErrorText()) dsig.DisposeXmlDSig() sbXml.DisposeStringBuilder() return } fmt.Println(*xmlKeyInfo.GetXml()) fmt.Println("----") // Assuming the X509Certificate is in the KeyInfo, it will look like this: // <ds:KeyInfo Id="..."> // <ds:KeyValue> // ... // <ds:X509Data> // <ds:X509Certificate>MIIHAz...</ds:X509Certificate> // </ds:X509Data> // </ds:KeyInfo> certBase64 := xmlKeyInfo.GetChildContent("*:X509Data|*:X509Certificate") if xmlKeyInfo.LastMethodSuccess() != true { fmt.Println("No X509Certificate found in the KeyInfo.") dsig.DisposeXmlDSig() sbXml.DisposeStringBuilder() return } // Load a certificate object w/ the base64. cert := chilkat.NewCert() success = cert.LoadFromBase64(*certBase64) if success != true { fmt.Println(cert.LastErrorText()) dsig.DisposeXmlDSig() sbXml.DisposeStringBuilder() cert.DisposeCert() return } // Examine the cert.. fmt.Println("SubjectDN: ", cert.SubjectDN()) fmt.Println("IssuerDN: ", cert.IssuerDN()) fmt.Println("SerialNumber as Decimal: ", cert.SerialDecimal()) xmlKeyInfo.DisposeXml() dsig.DisposeXmlDSig() sbXml.DisposeStringBuilder() cert.DisposeCert() |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.