Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
#include <Array.au3>

Global Const $CAPICOM_LOCAL_MACHINE_STORE = 1
Global Const $CAPICOM_CURRENT_USER_STORE = 2

Global $iOption = $CAPICOM_LOCAL_MACHINE_STORE ;Change only this to one of above options

$aCerts = _Certificates_Get($iOption)

If @error Then
    Exit MsgBox(16, @ScriptName, 'Unable to create CAPICOM.Store object' & @CRLF & @CRLF & ' ==> EXIT')
EndIf

_ArrayDisplay($aCerts)

Func _Certificates_Get($iOption)
    Local Const $sOption = ($iOption = $CAPICOM_CURRENT_USER_STORE ? 'My' : 'Root')

    Local $oCertStore = ObjCreate('CAPICOM.Store')

    If Not IsObj($oCertStore) Then
        Return SetError(1, 0, 0)
    EndIf

    $oCertStore.Open($iOption, $sOption, 0)
    Local $oCerts = $oCertStore.Certificates

    If Not IsObj($oCerts) Then
        Return SetError(2, 0, 0)
    EndIf

    Local $iC = 1
    Local $aCerts[$oCerts.Count + 1][8] = [[$oCerts.Count, 'IssuerName', 'SerialNumber', 'SubjectName', 'Version', 'ValidFromDate', 'ValidToDate', 'PrivateKey UniqueContainerName']]

    For $oCert In $oCerts
        $aCerts[$iC][1] = $oCert.IssuerName
        $aCerts[$iC][2] = $oCert.SerialNumber
        $aCerts[$iC][3] = $oCert.SubjectName
        $aCerts[$iC][4] = $oCert.Version
        $aCerts[$iC][5] = _Certificates_DateFormat($oCert.ValidFromDate)
        $aCerts[$iC][6] = _Certificates_DateFormat($oCert.ValidToDate)

        If $oCert.HasPrivateKey() Then
            $aCerts[$iC][7] = $oCert.PrivateKey.UniqueContainerName
        EndIf

        $iC += 1
    Next

    Return $aCerts
EndFunc

Func _Certificates_DateFormat($sDate)
    Local $aDate = StringRegExp($sDate, '(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)', 3)

    If UBound($aDate) < 6 Then
        Return SetError(1, 0, $sDate)
    EndIf

    Return StringFormat('%02i/%02i/%04i %02i:%02i:%02i', $aDate[2], $aDate[1], $aDate[0], $aDate[3], $aDate[4], $aDate[5])
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:13, 20-12-2016 | #6