Ver Mensaje Individual
  #2  
Antiguo 26-08-2010
JordiP JordiP is offline
Miembro
 
Registrado: nov 2009
Posts: 48
Reputación: 0
JordiP Va por buen camino
Thumbs up 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
Responder Con Cita