2017-01-27 17:37:51 +02:00
|
|
|
unit uCEFX509CertPrincipal;
|
|
|
|
|
2018-05-12 14:50:54 +02:00
|
|
|
{$IFDEF FPC}
|
|
|
|
{$MODE OBJFPC}{$H+}
|
|
|
|
{$ENDIF}
|
|
|
|
|
2017-02-05 21:56:46 +02:00
|
|
|
{$I cef.inc}
|
|
|
|
|
2022-02-19 19:56:41 +02:00
|
|
|
{$IFNDEF TARGET_64BITS}{$ALIGN ON}{$ENDIF}
|
|
|
|
{$MINENUMSIZE 4}
|
|
|
|
|
2017-01-27 17:37:51 +02:00
|
|
|
interface
|
|
|
|
|
|
|
|
uses
|
2017-02-05 21:56:46 +02:00
|
|
|
{$IFDEF DELPHI16_UP}
|
2017-01-27 17:37:51 +02:00
|
|
|
System.Classes,
|
2017-02-05 21:56:46 +02:00
|
|
|
{$ELSE}
|
|
|
|
Classes,
|
|
|
|
{$ENDIF}
|
2017-03-16 20:09:42 +02:00
|
|
|
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes;
|
2017-01-27 17:37:51 +02:00
|
|
|
|
|
|
|
type
|
2017-03-16 20:09:42 +02:00
|
|
|
TCefX509CertPrincipalRef = class(TCefBaseRefCountedRef, ICefX509CertPrincipal)
|
2017-01-27 17:37:51 +02:00
|
|
|
protected
|
|
|
|
function GetDisplayName: ustring;
|
|
|
|
function GetCommonName: ustring;
|
|
|
|
function GetLocalityName: ustring;
|
|
|
|
function GetStateOrProvinceName: ustring;
|
|
|
|
function GetCountryName: ustring;
|
2018-03-29 20:02:04 +02:00
|
|
|
procedure GetOrganizationNames(const names: TStrings);
|
|
|
|
procedure GetOrganizationUnitNames(const names: TStrings);
|
2017-01-27 17:37:51 +02:00
|
|
|
|
|
|
|
public
|
|
|
|
class function UnWrap(data: Pointer): ICefX509CertPrincipal;
|
|
|
|
end;
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
uses
|
2017-02-05 21:56:46 +02:00
|
|
|
{$IFDEF DELPHI16_UP}
|
2018-06-03 17:18:54 +02:00
|
|
|
{$IFDEF MSWINDOWS}WinApi.Windows,{$ENDIF} System.SysUtils,
|
2017-02-05 21:56:46 +02:00
|
|
|
{$ELSE}
|
2018-06-03 17:18:54 +02:00
|
|
|
{$IFDEF MSWINDOWS}Windows,{$ENDIF} SysUtils,
|
2017-02-05 21:56:46 +02:00
|
|
|
{$ENDIF}
|
2019-11-09 00:15:53 +02:00
|
|
|
uCEFMiscFunctions, uCEFStringList;
|
2017-01-27 17:37:51 +02:00
|
|
|
|
|
|
|
function TCefX509CertPrincipalRef.GetDisplayName: ustring;
|
|
|
|
begin
|
2018-05-12 14:50:54 +02:00
|
|
|
Result := CefStringFreeAndGet(PCefX509CertPrincipal(FData)^.get_display_name(PCefX509CertPrincipal(FData)));
|
2017-01-27 17:37:51 +02:00
|
|
|
end;
|
|
|
|
|
|
|
|
function TCefX509CertPrincipalRef.GetCommonName: ustring;
|
|
|
|
begin
|
2018-05-12 14:50:54 +02:00
|
|
|
Result := CefStringFreeAndGet(PCefX509CertPrincipal(FData)^.get_common_name(PCefX509CertPrincipal(FData)));
|
2017-01-27 17:37:51 +02:00
|
|
|
end;
|
|
|
|
|
|
|
|
function TCefX509CertPrincipalRef.GetLocalityName: ustring;
|
|
|
|
begin
|
2018-05-12 14:50:54 +02:00
|
|
|
Result := CefStringFreeAndGet(PCefX509CertPrincipal(FData)^.get_locality_name(PCefX509CertPrincipal(FData)));
|
2017-01-27 17:37:51 +02:00
|
|
|
end;
|
|
|
|
|
|
|
|
function TCefX509CertPrincipalRef.GetStateOrProvinceName: ustring;
|
|
|
|
begin
|
2018-05-12 14:50:54 +02:00
|
|
|
Result := CefStringFreeAndGet(PCefX509CertPrincipal(FData)^.get_state_or_province_name(PCefX509CertPrincipal(FData)));
|
2017-01-27 17:37:51 +02:00
|
|
|
end;
|
|
|
|
|
|
|
|
function TCefX509CertPrincipalRef.GetCountryName: ustring;
|
|
|
|
begin
|
2018-05-12 14:50:54 +02:00
|
|
|
Result := CefStringFreeAndGet(PCefX509CertPrincipal(FData)^.get_country_name(PCefX509CertPrincipal(FData)));
|
2017-01-27 17:37:51 +02:00
|
|
|
end;
|
|
|
|
|
2018-03-29 20:02:04 +02:00
|
|
|
procedure TCefX509CertPrincipalRef.GetOrganizationNames(const names: TStrings);
|
2017-01-27 17:37:51 +02:00
|
|
|
var
|
2018-03-29 20:02:04 +02:00
|
|
|
TempSL : ICefStringList;
|
2017-01-27 17:37:51 +02:00
|
|
|
begin
|
2018-03-29 20:02:04 +02:00
|
|
|
if (names <> nil) then
|
|
|
|
begin
|
|
|
|
TempSL := TCefStringListOwn.Create;
|
2018-05-12 14:50:54 +02:00
|
|
|
PCefX509CertPrincipal(FData)^.get_organization_names(PCefX509CertPrincipal(FData), TempSL.Handle);
|
2018-03-29 20:02:04 +02:00
|
|
|
TempSL.CopyToStrings(names);
|
2017-01-27 17:37:51 +02:00
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
2018-03-29 20:02:04 +02:00
|
|
|
procedure TCefX509CertPrincipalRef.GetOrganizationUnitNames(const names: TStrings);
|
2017-01-27 17:37:51 +02:00
|
|
|
var
|
2018-03-29 20:02:04 +02:00
|
|
|
TempSL : ICefStringList;
|
2017-01-27 17:37:51 +02:00
|
|
|
begin
|
2018-03-29 20:02:04 +02:00
|
|
|
if (names <> nil) then
|
|
|
|
begin
|
|
|
|
TempSL := TCefStringListOwn.Create;
|
2018-05-12 14:50:54 +02:00
|
|
|
PCefX509CertPrincipal(FData)^.get_organization_unit_names(PCefX509CertPrincipal(FData), TempSL.Handle);
|
2018-03-29 20:02:04 +02:00
|
|
|
TempSL.CopyToStrings(names);
|
2017-01-27 17:37:51 +02:00
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
class function TCefX509CertPrincipalRef.UnWrap(data: Pointer): ICefX509CertPrincipal;
|
|
|
|
begin
|
|
|
|
if (data <> nil) then
|
|
|
|
Result := Create(data) as ICefX509CertPrincipal
|
|
|
|
else
|
|
|
|
Result := nil;
|
|
|
|
end;
|
|
|
|
|
|
|
|
end.
|