Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   listar almacen de certificados de Windows (https://www.clubdelphi.com/foros/showthread.php?t=69551)

JordiP 25-08-2010 13:03:33

listar almacen de certificados de Windows
 
Buenos días,

Despues de mocho buscar y no encontrar lo que necesito, queria saber como puedo obtener los certificados que tengo instalados en mi equipo ?

Necesito incorporar a mi programa la posibilidad de que el usuario elija uno de los certificados instalados.

Esto ya lo tenia implementado en un programa viejo hecho en FOX, con una libreria externa la cual lee estos certificados y no se la manera de hacerlo para Delphi 2010.

Gracias a todos y espero que alguien tenga una solución.

:D:D

JordiP 26-08-2010 10:52:10

Solucionado
 
Ya he encontrado como obtener los certificados del PC.

1. Se debe instalar la SDK de CAPICOM de microsoft

2. Descargar CAPICOM_TLB.pas. Aqui podeis descargar un fuente que contiene esta UNIT.

3. Descargar wcrypt2.pas

4. incluir ambas UNITS en vuestro proyecto

5. El siguiente codigo es para obtener la lista:
Código Delphi [-]
 
procedure leerCertificados;

const
  CAPICOM_CA_STORE = 'ca';
  CAPICOM_MY_STORE = 'my';
  CAPICOM_ADDRESS_BOOK_STORE = 'AddressBook';
  CAPICOM_OTHER_STORE = 'other';
  CAPICOM_ROOT_STORE = 'root';

var
    store: IStore;
    certificates: ICertificates;
    certificate: ICertificate2;
    i: integer;
begin
 
  // Inicializamos la variable
  store := CoStore.Create;

  // Abrimos el almacén (STORE) que queremos leer.
  store.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED or CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED or CAPICOM_STORE_OPEN_EXISTING_ONLY);
 
  // Extraemos los certificados obtenidos.
  certificates := Store.Certificates as ICertificates2;

  for i:= 1 to certificates.Count do
  begin
      certificate := IInterface(certificates.Item[i]) as ICertificate2;
 
      // AQUI YA PODEIS TRABAJAR CON LOS VALORES DEL CERTIFICADO.
  end;
end;

espero que pueda servirle a alguien.

Saludos y gracias;)


La franja horaria es GMT +2. Ahora son las 21:04:55.

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