Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Usar CAPICOM para saber el Alias de un Cerificado (https://www.clubdelphi.com/foros/showthread.php?t=98032)

adebonis 14-05-2026 10:42:34

Usar CAPICOM para saber el Alias de un Cerificado
 
Buenos días.

Pues eso, no encuentro la forma de mostrar el Alias de un Certificado digital del almacén de Windows mediante CAPICOM.

¿Alguien que lo haya logrado? Estoy utilizando Delphi 2007.

Saludos.
Adolfo de Bonis

Casimiro Noteví 14-05-2026 19:47:30

Prueba:
Código Delphi [-]
function ObtenerAliasCertificado(Cert: ICertificate): string;
var
  Subject: string;
  p1, p2: Integer;
begin
  // 1. Intentar FriendlyName
  Result := Trim(Cert.FriendlyName);

  // 2. Si no hay FriendlyName, usar SubjectName
  if Result = '' then
    Result := Trim(Cert.SubjectName);

  // 3. Intentar extraer CN= del Subject
  Subject := Result;

  p1 := Pos('CN=', Subject);
  if p1 > 0 then
  begin
    Inc(p1, 3); // saltar "CN="

    p2 := PosEx(',', Subject, p1);
    if p2 = 0 then
      p2 := Length(Subject) + 1;

    Result := Copy(Subject, p1, p2 - p1);
    Result := Trim(Result);
  end;

  // 4. Valor final de seguridad
  if Result = '' then
    Result := '(sin alias)';
end;

adebonis 15-05-2026 10:34:12

Hola y gracias por contestar.

Veo que en mi CAPICOM_TLB la propiedad FriendlyName en el ICertificate no existe. La versión del archivo es la 2.1.0.2. ¿puede existir otra versión posterior que si tenga el FriendlyName?

Saludos.
Adolfo de Bonis.

Casimiro Noteví 15-05-2026 17:59:44

No sé, en los que yo he visto está el "CN".


La franja horaria es GMT +2. Ahora son las 01:51:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi