DOS Ausgabe in Array

  • Hallo Zusammen,

    ich bin gerade irgendwie verplant und bekomme es einfach nicht hin eine DOS Ausgabe in ein Array zu schreiben. Ziel ist es die Userzertifikate auszulesen und in ein Array zu schreiben.

    Vielleicht erkennt jemand von euch den Fehler...

    [autoit]


    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    Global $aCertificate = _GetCertificate('certutil -v -store -user My')
    _ArrayDisplay($aCertificate)
    MsgBox(0, "Test", @error)

    [/autoit][autoit][/autoit][autoit]

    ;######################################
    ;DOS Programm
    ;######################################
    Func _GetCertificate($command)
    Local $iPid = Run('"' & @ComSpec & '" /c ' & $command, '', @SW_HIDE, 2 + 4), $sOutput = "", $aData
    Do
    Sleep(20)
    $sOutput &= StdoutRead($iPid, False, False)
    Until @error
    $aData = StringSplit($sOutput, @LF)
    If $aData[0] <> 3 Then Return SetError(1)
    $aName = StringRegExp($aData[1], '"([^"]*)"\,', 3)
    $aValue = StringRegExp($aData[2], '"([^"]*)"\,', 3)
    If UBound($aName) <> UBound($aValue) Then Return SetError(2)
    Local $aReturn[UBound($aName)][2]
    For $i = 0 To UBound($aName)-1
    $aReturn[$i][0] = $aName[$i]
    $aReturn[$i][1] = $aValue[$i]
    Next
    Return $aReturn
    EndFunc ;==>_GetCertificate

    [/autoit]

    Einmal editiert, zuletzt von AyKay (1. Oktober 2014 um 16:13)

  • Achso, ja klar sollten es mehr Zeilen sein. Allerdings klappt meiner Vermutung nach schon der StringSplit nicht


    Hier der Output:

    Spoiler anzeigen


    My
    ================ Certificate 0 ================
    X509 Certificate:
    Version: 3
    Serial Number: 61039fc7000100007852
    Signature Algorithm:
    Algorithm ObjectId: 1.2.840.557890.1.1.5 sha1RSA
    Algorithm Parameters:
    05 00
    Issuer:
    CN=xyz
    OU=xyz
    O=xyz
    C=DE

    NotBefore: 01.10.2014 12:12
    NotAfter: 30.09.2019 12:12

    Subject:
    E=hans.wurst@test.local
    CN=Hans Wurst

    Public Key Algorithm:
    Algorithm ObjectId: 1.2.840.558769.1.1.1 RSA (RSA_SIGN)
    Algorithm Parameters:
    05 00
    Public Key Length: 2048 bits
    Public Key: UnusedBits = 0
    0000 30 82 01 0a 02 82 01 01 00 bd e3 68 d4 11 2a 5b
    0010 95 4e 35 87 21 76 16 cb 7f 63 f4 2d 32 e1 38 b5
    0020 fb ba 12 b5 b1 d7 66 70 39 bc 3a 4e df 94 9a c5
    0030 82 74 c3 b3 25 a2 ba e8 a1 8d 8e 62 c6 3f 6f 4d
    0040 40 57 fe 23 3f cb 76 b0 4b 81 21 27 ce b1 4f b1
    0050 bd fd 5e 42 98 5f 40 8e 91 eb 60 04 ee c0 3f d9
    0060 08 72 77 65 28 1a f2 6e c0 71 e5 ca bf 15 03 c1
    0070 8c 95 12 8c 2f 1d ee 1a a0 3c 5b da df 3d 29 76
    0080 0c d5 75 88 60 82 f6 c9 7d 43 3b 10 82 7c c8 45
    0090 c1 f0 23 a5 6a 2c 09 33 18 f7 67 d1 f5 15 f8 29
    00a0 04 e4 9c fd c5 35 a0 42 6a 60 39 f1 fb 9f eb 0c
    00b0 fe 7c 71 d5 75 4c d4 46 a1 07 c1 e6 3d 07 7e db
    00c0 40 e4 ea a3 d9 7e 42 63 46 5b e3 17 59 3a b9 47
    00d0 23 f1 b0 27 1b 46 b9 6e 45 03 92 b8 e8 54 3f 83
    00e0 f4 bf 38 b8 da 55 44 44 6e 05 c7 c2 d0 20 96 7f
    00f0 c1 0f d0 29 2b 48 13 bd e2 70 9a 98 3d 9e ea 4f
    0100 4b 6d 09 c7 57 04 88 a4 ab 02 03 01 00 01
    Certificate Extensions: 9
    2.5.29.15: Flags = 0, Length = 4
    Key Usage
    Digital Signature, Key Encipherment, Data Encipherment (b0)

    1.3.6.1.4.1.222.21.7: Flags = 0, Length = 31
    Certificate Template Information
    Template=Bit 2048(1.3.6.1.4.1.311.21.8.6777589.7918127.329337
    0.8423385.13961411.190.13451290.14380359)
    Major Version Number=100
    Minor Version Number=23

    1.2.840.113549.1.9.15: Flags = 0, Length = 37
    SMIME Capabilities
    [1]SMIME Capability
    Object ID=1.2.840.113549.3.2
    Parameters=02 02 00 80
    [2]SMIME Capability
    Object ID=1.2.840.113549.3.4
    Parameters=02 02 00 80
    [3]SMIME Capability
    Object ID=1.3.14.3.2.7
    [4]SMIME Capability
    Object ID=1.2.840.113549.3.7

    2.5.29.14: Flags = 0, Length = 16
    Subject Key Identifier
    52 2c 79 8e d3 e4 0c 58 df 4f ba 1d 0c 76 c1 89 a2 88 27 f3

    2.5.29.35: Flags = 0, Length = 18
    Authority Key Identifier
    KeyID=5e a4 4c 5a 81 9e 5f 72 11 df d1 0c 55 51 82 92 ec 35 fb 35

    2.5.29.31: Flags = 0, Length = 112
    CRL Distribution Points
    [1]CRL Distribution Point
    Distribution Point Name:
    Full Name:
    URL=ldap:///CN=EH-IS-SubCA06,CN=I0262,CN=CDP,CN=P
    ublic%20Key%20Services,CN=Services,CN=Configuration,DC=xxx,DC=xxx?certificat
    eRevocationList?base?objectClass=cRLDistributionPoint
    URL=http://p1.xxx.xx.x/CertEnroll/x-
    x-xxx.crl

    1.3.6.1.5.5.7.1.1: Flags = 0, Length = 167
    Authority Information Access
    [1]Authority Info Access
    Access Method=Certification Authority Issuer (1.3.6.1.5.5.7.48.2)
    Alternative Name:
    URL=ldap:///CN=22-22-"ub2CA06,CN=AIA,CN=Public%20Key%20Services
    ,CN=Services,CN=Configuration,DC=xx,DC=xx?cACertificate?base?objectClass=c
    ertificationAuthority
    [2]Authority Info Access
    Access Method=Certification Authority Issuer (1.3.6.1.5.5.7.48.2)
    Alternative Name:
    URL=http://p1.yyy.exxxx.xx/CertEnroll/I2.xxx.xxx_X-xx-xx06(1).crt
    [3]Authority Info Access
    Access Method=On-line Certificate Status Protocol (1.3.6.1.5.5.7.48
    .1)
    Alternative Name:
    URL=http://xx.xxx/OCSP

    2.5.29.37: Flags = 0, Length = e
    Enhanced Key Usage
    Encrypting File System (1.3.6.1.4.1.311.10.3.4)

    1.3.6.1.4.1.311.21.10: Flags = 0, Length = 10
    Application Policies
    [1]Application Certificate Policy:
    Policy Identifier=Encrypting File System

    Signature Algorithm:
    Algorithm ObjectId: 1.2.840.113549.1.1.5 sha1RSA
    Algorithm Parameters:
    05 00
    Signature: UnusedBits=0
    0000 17 5f 8f 6f fb cc 1f ed d2 3d 85 fb 3f 3f fe aa
    0010 59 fc d9 f3 20 80 a2 99 7f cf 4c db 6b a6 01 da
    0020 be f2 57 45 13 43 ee 38 12 31 10 84 27 50 bc 10
    0030 e4 78 b2 8d 8e 5b 15 11 db 91 14 af 92 53 4a 49
    0040 94 33 ff 6f bd 67 ec 5e 19 c3 3c 71 be ea 3c 6c
    0050 99 04 d2 2f b1 42 9a a8 07 dc d4 41 8d d7 d8 25
    0060 98 d1 57 d6 30 cd f6 5c 8a 8f 6f 03 f5 f0 8a 47
    0070 cb 24 cd 01 8c d6 ee 00 51 ca 0a e4 d8 46 06 7f
    0080 2a 5a 9d 2f 54 a8 2b 53 e2 91 22 fb a8 9c 1a d6
    0090 71 b0 cb 3e 78 12 75 06 04 f3 a9 14 0c 9a 4b 92
    00a0 4c 98 25 8c f4 52 5c 3a cc ce 23 10 65 6f d4 c6
    00b0 f0 e2 0a 88 0d 39 a2 29 fd bc bd b6 9a 87 7b 28
    00c0 91 8f b1 55 fb 7c 9f a1 ae d2 f8 3a f7 00 a1 9e
    00d0 3c b6 48 82 5f 7c ee 62 33 7b 24 a5 19 5a 9d fd
    00e0 95 17 39 b4 d4 11 e3 f3 a9 e1 6d 74 f1 43 54 1e
    00f0 64 f1 5b 79 ed 8c 51 02 95 ef 2e 91 b9 6f 0a 7a
    0100 74 82 47 a2 24 d1 e1 57 94 c9 68 3c b1 bc d3 f2
    0110 3e 5c 07 0d 79 07 7c 69 94 a6 b5 39 4c 3c 82 0c
    0120 79 44 99 82 83 2c 1e db 2b e1 eb f3 97 d4 2d 48
    0130 9a 90 31 f9 36 67 09 da dd 21 c5 27 2c 44 2c d4
    0140 56 0b 48 81 fe 84 e8 03 ce ca d0 4d 9e 62 9a 93
    0150 99 9c bf 4e ad f2 0d 93 48 85 14 36 af 8d cc 21
    0160 25 9b 61 e2 5a 8d 9e 4e 97 7f fd 93 ba 46 9e eb
    0170 15 72 72 eb 28 45 94 de a1 0b 85 1d 3c 71 e8 86
    0180 44 94 04 94 a7 b3 c5 41 b9 dd 51 54 c1 d1 b5 24
    0190 bf 59 c0 98 31 d0 b8 34 a0 4d 2b a8 3d ce cd 4b
    01a0 e9 86 f6 e2 2b 60 3d ac 60 43 35 fc 2b 86 e7 cb
    01b0 91 87 2c 15 5f 9d c7 9a c6 3d 91 01 fc 3d 13 73
    01c0 fd 1e d1 55 82 2b 16 aa d1 7e 5f 4b dc 29 ec cf
    01d0 a7 23 fa dc 27 1e 2f 20 d2 97 ae 93 0b e0 e0 b6
    01e0 29 0c 4f ea 8e 11 3e 62 33 46 f0 23 0a d0 81 35
    01f0 8f 44 84 21 7f e3 8a f4 1b cc 14 89 e0 d7 2f 32
    Non-root Certificate
    Key Id Hash(rfc-sha1): 52 2c 79 8e d3 e4 0c 58 df 4f ba 1d 0c 76 c1 89 a2 88 27
    f3
    Key Id Hash(sha1): 10 9f 09 50 f5 c3 a7 53 56 06 a6 3e 53 36 f7 43 73 b0 95 b1
    Cert Hash(md5): f6 71 ab e9 95 f1 52 64 44 62 fa c3 a8 de aa e0
    Cert Hash(sha1): ff 61 a6 50 54 14 11 18 f6 07 e9 87 37 e7 73 69 01 24 61 e1

    CERT_REQUEST_ORIGINATOR_PROP_ID(71):
    xx

    CERT_KEY_PROV_INFO_PROP_ID(2):
    Key Container = da33396cc3c8be0393c6b28319154d0d_6c1f1b0e-0154-42d1-8f4c-797
    aa92d6c18
    Simple container name: le-52d9e895-3eca-4007-b1a9-3e28be69f495
    Provider = Microsoft Enhanced Cryptographic Provider v1.0
    ProviderType = 1
    Flags = 0
    KeySpec = 1 -- AT_KEYEXCHANGE

    CERT_OCSP_CACHE_PREFIX_PROP_ID(75):
    0390F14B03B36A980029A24062F1FEAC_

    CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID(24):
    fa b2 41 77 ec 9f 45 45 6c 46 24 84 ea f4 9a 2a

    Unknown Property(92):
    00 08 00 00 ....

    CERT_KEY_IDENTIFIER_PROP_ID(20):
    52 2c 79 8e d3 e4 0c 58 df 4f ba 1d 0c 76 c1 89 a2 88 27 f3

    CERT_SIGNATURE_HASH_PROP_ID(15) disallowedHash:
    06 2b ce 3e d7 f1 9c f5 ed f0 bf a9 08 12 2c d1 6a 0a 36 5b

    CERT_MD5_HASH_PROP_ID(4):
    f6 71 ab e9 95 f1 52 64 44 62 fa c3 a8 de aa e0

    CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID(25):
    49 07 70 50 a0 fd bd 59 b2 2c f4 6e df 25 9f 92

    CERT_SHA1_HASH_PROP_ID(3):
    ff 61 a6 50 54 14 11 18 f6 07 e9 87 37 e7 73 69 01 24 61 e1
    Simple container name: le-52d9e895-3eca-4007-b1a9-3e28be69f495
    PP_KEYSTORAGE = 1
    CRYPT_SEC_DESCR -- 1
    KP_PERMISSIONS = 3f (63)
    CRYPT_ENCRYPT -- 1
    CRYPT_DECRYPT -- 2
    CRYPT_EXPORT -- 4
    CRYPT_READ -- 8
    CRYPT_WRITE -- 10 (16)
    CRYPT_MAC -- 20 (32)

    D:(A;ID;GAGR;;;SY)(A;ID;GAGR;;;BA)(A;ID;GAGR;;;S-1-5-21-1576947349-221413208-1
    89349994-23600)

    Allow Full Control NT AUTHORITY\SYSTEM
    Allow Full Control BUILTIN\Administrators
    Allow Full Control xx\xx5


    Private Key:
    PRIVATEKEYBLOB
    Version: 2
    aiKeyAlg: 0xa400
    CALG_RSA_KEYX
    Algorithm Class: 0xa000(5) ALG_CLASS_KEY_EXCHANGE
    Algorithm Type: 0x400(2) ALG_TYPE_RSA
    Algorithm Sub-id: 0x0(0) ALG_SID_RSA_ANY
    0000 52 53 41 32 RSA2
    0000 ...
    048c
    Encryption test passed
    CertUtil: -store command completed successfully.

  • Achso, ja klar sollten es mehr Zeilen sein. Allerdings klappt meiner Vermutung nach schon der StringSplit nicht


    Weniger vermuten, mehr überprüfen...
    Ich denke er klappt, da du aber offensichtlich mehr als 3 Zeilen hast wird die funktion mit seterror(1) verlassen...