|  | 
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
| (Delphi DLL) Get Certificate User Principal Name (UPN)See more Certificates ExamplesDemonstrates how to get a certificate's UPN from the SAN (Subject Alternative Name). Most certificates do not have a UPN. This example only applies to those certificates that have a User Principal Name.Note: This example requires Chilkat v9.5.0.90 or greater due to fixes made in getting the UPN from the SAN. 
 uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Cert, Xml; ... procedure TForm1.Button1Click(Sender: TObject); var cert: HCkCert; success: Boolean; xml: HCkXml; upn: PWideChar; begin cert := CkCert_Create(); success := CkCert_LoadFromFile(cert,'qa_data/certs/sample.cer'); if (success = False) then begin Memo1.Lines.Add(CkCert__lastErrorText(cert)); Exit; end; xml := CkXml_Create(); CkXml_LoadXml(xml,CkCert__subjectAlternativeName(cert)); Memo1.Lines.Add(CkXml__getXml(xml)); // A certificate with a User Principal Name in the SAN might have this: // <SubjectAltName> // <rfc822Name>joe@example.com</rfc822Name> // <name type="oid" oid="1.3.6.1.4.1.311.20.2.3">joe@example.com</name> // </SubjectAltName> // The OID 1.3.6.1.4.1.311.20.2.3 is for the User Principal Name. upn := CkXml__chilkatPath(xml,'/A/name,oid,1.3.6.1.4.1.311.20.2.3|*'); if (CkXml_getLastMethodSuccess(xml) = False) then begin Memo1.Lines.Add('No user principle name.'); end else begin Memo1.Lines.Add('User Principle Name = ' + upn); end; CkCert_Dispose(cert); CkXml_Dispose(xml); end; | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.