me vais a matar, hace falta la funcion para obtener el numero de serie del certificado
Código Delphi
[-]
function SerialNum_Certificado(Nombre_Certificado: String): String;
var
hStore: HCERTSTORE;
PrevContext, CurContext: PCERT_CONTEXT;
cbSize: DWORD;
sNombre: String;
begin
Result := '';
hStore := CertOpenSystemStore(0, PChar('MY'));
if Assigned(hStore) then
begin
PrevContext := nil;
CurContext := CertEnumCertificatesInStore(hStore, PrevContext);
while Assigned(CurContext) do
begin
sNombre := '';
cbSize := CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0,
nil, nil, 0);
if cbSize > 0 then
begin
SetLength(sNombre, cbSize - 1);
CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil,
PChar(sNombre), cbSize);
if SameText(Nombre_Certificado, sNombre) then
begin
Result := GetCertSerialNumber(@CurContext^.pCertInfo^.SerialNumber);
break;
end;
end;
PrevContext := CurContext;
CurContext := CertEnumCertificatesInStore(hStore, PrevContext);
end;
end;
end;
ahora ya creo que esta todo. SI echarais algo en falta me lo decis. Esto me ha funcionado en Delphi Berlin y en Delphi Alexandria