NAME=pFa ASN1 decoding of a certificate
FILE=malloc://4096
CMDS=<<EOF
w6d MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0NlowSjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMTGkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EFq6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWAa6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIGCCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNvbTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9kc3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAwVAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcCARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwuY3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsFAAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJouM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwuX4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlGPfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
b 0x1000
pFa
pFaq
EOF
EXPECT=<<EOF
   0  1170: 0: cons SEQUENCE            : 
   4   890: 1: cons SEQUENCE            : 
   8     3: 2: cons Context [0]         : 
  10     1: 3: prim INTEGER             : 02
  13    16: 2: prim INTEGER             : 0a 01 41 42 00 00 01 53 85 73 6a 0b 85 ec a7 08 |..AB...S.sj.....|
  31    13: 2: cons SEQUENCE            : 
  33     9: 3: prim OBJECT_IDENTIFIER   : sha256WithRSAEncryption
  46    63: 2: cons SEQUENCE            : 
  48    36: 3: cons SET                 : 
  50    34: 4: cons SEQUENCE            : 
  52     3: 5: prim OBJECT_IDENTIFIER   : organizationName
  57    27: 5: prim PrintableString     : Digital Signature Trust Co.
  86    23: 3: cons SET                 : 
  88    21: 4: cons SEQUENCE            : 
  90     3: 5: prim OBJECT_IDENTIFIER   : commonName
  95    14: 5: prim PrintableString     : DST Root CA X3
 111    30: 2: cons SEQUENCE            : 
 113    13: 3: prim UTCTime             : 17/03/2016 16:40:46 GMT
 128    13: 3: prim UTCTime             : 17/03/2021 16:40:46 GMT
 143    74: 2: cons SEQUENCE            : 
 145    11: 3: cons SET                 : 
 147     9: 4: cons SEQUENCE            : 
 149     3: 5: prim OBJECT_IDENTIFIER   : countryName
 154     2: 5: prim PrintableString     : US
 158    22: 3: cons SET                 : 
 160    20: 4: cons SEQUENCE            : 
 162     3: 5: prim OBJECT_IDENTIFIER   : organizationName
 167    13: 5: prim PrintableString     : Let's Encrypt
 182    35: 3: cons SET                 : 
 184    33: 4: cons SEQUENCE            : 
 186     3: 5: prim OBJECT_IDENTIFIER   : commonName
 191    26: 5: prim PrintableString     : Let's Encrypt Authority X3
 219   290: 2: cons SEQUENCE            : 
 223    13: 3: cons SEQUENCE            : 
 225     9: 4: prim OBJECT_IDENTIFIER   : rsaEncryption
 238   270: 3: prim BIT_STRING          : 
 243   266: 4: cons SEQUENCE            : 
 247   257: 5: prim INTEGER             : 00 9c d3 0c f0 5a e5 2e 47 b7 72 5d 37 83 b3 68 |.....Z..G.r]7..h|
                                        : 63 30 ea d7 35 26 19 25 e1 bd be 35 f1 70 92 2f |c0..5&.%...5.p./|
                                        : b7 b8 4b 41 05 ab a9 9e 35 08 58 ec b1 2a c4 68 |..KA....5.X..*.h|
                                        : 87 0b a3 e3 75 e4 e6 f3 a7 62 71 ba 79 81 60 1f |....u....bq.y.`.|
                                        : d7 91 9a 9f f3 d0 78 67 71 c8 69 0e 95 91 cf fe |......xgq.i.....|
                                        : e6 99 e9 60 3c 48 cc 7e ca 4d 77 12 24 9d 47 1b |...`<H.~.Mw.$.G.|
                                        : 5a eb b9 ec 1e 37 00 1c 9c ac 7b a7 05 ea ce 4a |Z....7....{....J|
                                        : eb bd 41 e5 36 98 b9 cb fd 6d 3c 96 68 df 23 2a |..A.6....m<.h.#*|
                                        : 42 90 0c 86 74 67 c8 7f a5 9a b8 52 61 14 13 3f |B...tg.....Ra..?|
                                        : 65 e9 82 87 cb db fa 0e 56 f6 86 89 f3 85 3f 97 |e.......V.....?.|
                                        : 86 af b0 dc 1a ef 6b 0d 95 16 7d c4 2b a0 65 b2 |......k...}.+.e.|
                                        : 99 04 36 75 80 6b ac 4a f3 1b 90 49 78 2f a2 96 |..6u.k.J...Ix/..|
                                        : 4f 2a 20 25 29 04 c6 74 c0 d0 31 cd 8f 31 38 95 |O* %)..t..1..18.|
                                        : 16 ba a8 33 b8 43 f1 b1 1f c3 30 7f a2 79 31 13 |...3.C....0..y1.|
                                        : 3d 2d 36 f8 e3 fc f2 33 6a b9 39 31 c5 af c4 8d |=-6....3j.91....|
                                        : 0d 1d 64 16 33 aa fa 84 29 b6 d4 0b c0 d8 7d c3 |..d.3...).....}.|
                                        : 93                                              |.               |
 508     3: 5: prim INTEGER             : 010001
 513   381: 2: cons Context [3]         : 
 517   377: 3: cons SEQUENCE            : 
 521    18: 4: cons SEQUENCE            : 
 523     3: 5: prim OBJECT_IDENTIFIER   : basicConstraints
 528     1: 5: prim BOOLEAN             : true
 531     8: 5: prim OCTET_STRING        : 
 533     6: 6: cons SEQUENCE            : 
 535     1: 7: prim BOOLEAN             : true
 538     1: 7: prim INTEGER             : 00
 541    14: 4: cons SEQUENCE            : 
 543     3: 5: prim OBJECT_IDENTIFIER   : keyUsage
 548     1: 5: prim BOOLEAN             : true
 551     4: 5: prim OCTET_STRING        : 
 553     2: 6: prim BIT_STRING          : 0186
 557   127: 4: cons SEQUENCE            : 
 559     8: 5: prim OBJECT_IDENTIFIER   : authorityInfoAccess
 569   115: 5: prim OCTET_STRING        : 
 571   113: 6: cons SEQUENCE            : 
 573    50: 7: cons SEQUENCE            : 
 575     8: 8: prim OBJECT_IDENTIFIER   : ocsp
 585    38: 8: prim Context [6]         : 
 625    59: 7: cons SEQUENCE            : 
 627     8: 8: prim OBJECT_IDENTIFIER   : caIssuers
 637    47: 8: prim Context [6]         : 
 686    31: 4: cons SEQUENCE            : 
 688     3: 5: prim OBJECT_IDENTIFIER   : authorityKeyIdentifier
 693    24: 5: prim OCTET_STRING        : 
 695    22: 6: cons SEQUENCE            : 
 697    20: 7: prim Context [0]         : 
 719    84: 4: cons SEQUENCE            : 
 721     3: 5: prim OBJECT_IDENTIFIER   : certificatePolicies
 726    77: 5: prim OCTET_STRING        : 
 728    75: 6: cons SEQUENCE            : 
 730     8: 7: cons SEQUENCE            : 
 732     6: 8: prim OBJECT_IDENTIFIER   : domain-validated
 740    63: 7: cons SEQUENCE            : 
 742    11: 8: prim OBJECT_IDENTIFIER   : 1.3.6.1.4.1.44947.1.1.1
 755    48: 8: cons SEQUENCE            : 
 757    46: 9: cons SEQUENCE            : 
 759     8:10: prim OBJECT_IDENTIFIER   : cps
 769    34:10: prim IA5String           : http://cps.root-x1.letsencrypt.org
 805    60: 4: cons SEQUENCE            : 
 807     3: 5: prim OBJECT_IDENTIFIER   : cRLDistributionPoints
 812    53: 5: prim OCTET_STRING        : 
 814    51: 6: cons SEQUENCE            : 
 816    49: 7: cons SEQUENCE            : 
 818    47: 8: cons Context [0]         : 
 820    45: 9: cons Context [0]         : 
 822    43:10: prim Context [6]         : 
 867    29: 4: cons SEQUENCE            : 
 869     3: 5: prim OBJECT_IDENTIFIER   : subjectKeyIdentifier
 874    22: 5: prim OCTET_STRING        : 
 876    20: 6: prim OCTET_STRING        : a8 4a 6a 63 04 7d dd ba e6 d1 39 b7 a6 45 65 ef |.Jjc.}....9..Ee.|
                                        : f3 a8 ec a1                                     |....            |
 898    13: 1: cons SEQUENCE            : 
 900     9: 2: prim OBJECT_IDENTIFIER   : sha256WithRSAEncryption
 913   256: 1: prim BIT_STRING          : 
 918    51: 2: prim Private_29          : 
    INTEGER
        02
  INTEGER
    0a 01 41 42 00 00 01 53 85 73 6a 0b 85 ec a7 08 |..AB...S.sj.....|
    sha256WithRSAEncryption
        organizationName
        Digital Signature Trust Co.
        commonName
        DST Root CA X3
    17/03/2016 16:40:46 GMT
    17/03/2021 16:40:46 GMT
        countryName
        US
        organizationName
        Let's Encrypt
        commonName
        Let's Encrypt Authority X3
      rsaEncryption
        INTEGER
          00 9c d3 0c f0 5a e5 2e 47 b7 72 5d 37 83 b3 68 |.....Z..G.r]7..h|
          63 30 ea d7 35 26 19 25 e1 bd be 35 f1 70 92 2f |c0..5&.%...5.p./|
          b7 b8 4b 41 05 ab a9 9e 35 08 58 ec b1 2a c4 68 |..KA....5.X..*.h|
          87 0b a3 e3 75 e4 e6 f3 a7 62 71 ba 79 81 60 1f |....u....bq.y.`.|
          d7 91 9a 9f f3 d0 78 67 71 c8 69 0e 95 91 cf fe |......xgq.i.....|
          e6 99 e9 60 3c 48 cc 7e ca 4d 77 12 24 9d 47 1b |...`<H.~.Mw.$.G.|
          5a eb b9 ec 1e 37 00 1c 9c ac 7b a7 05 ea ce 4a |Z....7....{....J|
          eb bd 41 e5 36 98 b9 cb fd 6d 3c 96 68 df 23 2a |..A.6....m<.h.#*|
          42 90 0c 86 74 67 c8 7f a5 9a b8 52 61 14 13 3f |B...tg.....Ra..?|
          65 e9 82 87 cb db fa 0e 56 f6 86 89 f3 85 3f 97 |e.......V.....?.|
          86 af b0 dc 1a ef 6b 0d 95 16 7d c4 2b a0 65 b2 |......k...}.+.e.|
          99 04 36 75 80 6b ac 4a f3 1b 90 49 78 2f a2 96 |..6u.k.J...Ix/..|
          4f 2a 20 25 29 04 c6 74 c0 d0 31 cd 8f 31 38 95 |O* %)..t..1..18.|
          16 ba a8 33 b8 43 f1 b1 1f c3 30 7f a2 79 31 13 |...3.C....0..y1.|
          3d 2d 36 f8 e3 fc f2 33 6a b9 39 31 c5 af c4 8d |=-6....3j.91....|
          0d 1d 64 16 33 aa fa 84 29 b6 d4 0b c0 d8 7d c3 |..d.3...).....}.|
          93                                              |.               |
        INTEGER
                010001
        basicConstraints
        true
            true
            INTEGER
                        00
        keyUsage
        true
                    0186
        authorityInfoAccess
              ocsp
              caIssuers
        authorityKeyIdentifier
        certificatePolicies
              domain-validated
              1.3.6.1.4.1.44947.1.1.1
                  cps
                  http://cps.root-x1.letsencrypt.org
        cRLDistributionPoints
        subjectKeyIdentifier
            a8 4a 6a 63 04 7d dd ba e6 d1 39 b7 a6 45 65 ef |.Jjc.}....9..Ee.|
            f3 a8 ec a1                                     |....            |
  sha256WithRSAEncryption
EOF
RUN

NAME=pFx x509 decoding
FILE=malloc://4096
CMDS=<<EOF
w6d MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0NlowSjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMTGkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EFq6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWAa6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIGCCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNvbTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9kc3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAwVAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcCARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwuY3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsFAAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJouM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwuX4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlGPfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
b 0x1000
pFx
EOF
EXPECT=<<EOF
TBSCertificate:
  Version: v3
  Serial Number:
    0a:01:41:42:00:00:01:53:85:73:6a:0b:85:ec:a7:08
  Signature Algorithm:
    sha256WithRSAEncryption
  Issuer:
    organizationName: Digital Signature Trust Co.
    commonName: DST Root CA X3
  Validity:
    Not Before: 17/03/2016 16:40:46 GMT
    Not After: 17/03/2021 16:40:46 GMT
  Subject:
    countryName: US
    organizationName: Let's Encrypt
    commonName: Let's Encrypt Authority X3
  Subject Public Key Info:
    Algorithm: rsaEncryption
    Module: 01:00:01
    Exponent: 256 bytes
  Extensions:
    basicConstraints: critical
    8 bytes
    keyUsage: critical
    4 bytes
    authorityInfoAccess: 
    115 bytes
    authorityKeyIdentifier: 
    24 bytes
    certificatePolicies: 
    77 bytes
    cRLDistributionPoints: 
    53 bytes
    subjectKeyIdentifier: 
    22 bytes
Algorithm:
  sha256WithRSAEncryption
Signature: 256 bytes
EOF
RUN

NAME=pFx x509 decoding JSON
FILE=malloc://4096
CMDS=<<EOF
w6d MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0NlowSjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMTGkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EFq6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWAa6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIGCCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNvbTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9kc3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAwVAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcCARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwuY3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsFAAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJouM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwuX4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlGPfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
b 0x1000
pFxj
EOF
EXPECT=<<EOF
{"TBSCertificate":{"Version":3,"SerialNumber":"0a:01:41:42:00:00:01:53:85:73:6a:0b:85:ec:a7:08","SignatureAlgorithm":"sha256WithRSAEncryption","Issuer":{"organizationName":"Digital Signature Trust Co.","commonName":"DST Root CA X3"},"Validity":{"NotBefore":"17/03/2016 16:40:46 GMT","NotAfter":"17/03/2021 16:40:46 GMT"},"Subject":{"countryName":"US","organizationName":"Let's Encrypt","commonName":"Let's Encrypt Authority X3"},"SubjectPublicKeyInfo":{"Algorithm":"rsaEncryption","Module":"01:00:01","Exponent":"00:9c:d3:0c:f0:5a:e5:2e:47:b7:72:5d:37:83:b3:68:63:30:ea:d7:35:26:19:25:e1:bd:be:35:f1:70:92:2f:b7:b8:4b:41:05:ab:a9:9e:35:08:58:ec:b1:2a:c4:68:87:0b:a3:e3:75:e4:e6:f3:a7:62:71:ba:79:81:60:1f:d7:91:9a:9f:f3:d0:78:67:71:c8:69:0e:95:91:cf:fe:e6:99:e9:60:3c:48:cc:7e:ca:4d:77:12:24:9d:47:1b:5a:eb:b9:ec:1e:37:00:1c:9c:ac:7b:a7:05:ea:ce:4a:eb:bd:41:e5:36:98:b9:cb:fd:6d:3c:96:68:df:23:2a:42:90:0c:86:74:67:c8:7f:a5:9a:b8:52:61:14:13:3f:65:e9:82:87:cb:db:fa:0e:56:f6:86:89:f3:85:3f:97:86:af:b0:dc:1a:ef:6b:0d:95:16:7d:c4:2b:a0:65:b2:99:04:36:75:80:6b:ac:4a:f3:1b:90:49:78:2f:a2:96:4f:2a:20:25:29:04:c6:74:c0:d0:31:cd:8f:31:38:95:16:ba:a8:33:b8:43:f1:b1:1f:c3:30:7f:a2:79:31:13:3d:2d:36:f8:e3:fc:f2:33:6a:b9:39:31:c5:af:c4:8d:0d:1d:64:16:33:aa:fa:84:29:b6:d4:0b:c0:d8:7d:c3:93"},"Extensions":[{"OID":"basicConstraints","Critical":true,"Value":"30:06:01:01:ff:02:01:00"},{"OID":"keyUsage","Critical":true,"Value":"03:02:01:86"},{"OID":"authorityInfoAccess","Value":"30:71:30:32:06:08:2b:06:01:05:05:07:30:01:86:26:68:74:74:70:3a:2f:2f:69:73:72:67:2e:74:72:75:73:74:69:64:2e:6f:63:73:70:2e:69:64:65:6e:74:72:75:73:74:2e:63:6f:6d:30:3b:06:08:2b:06:01:05:05:07:30:02:86:2f:68:74:74:70:3a:2f:2f:61:70:70:73:2e:69:64:65:6e:74:72:75:73:74:2e:63:6f:6d:2f:72:6f:6f:74:73:2f:64:73:74:72:6f:6f:74:63:61:78:33:2e:70:37:63"},{"OID":"authorityKeyIdentifier","Value":"30:16:80:14:c4:a7:b1:a4:7b:2c:71:fa:db:e1:4b:90:75:ff:c4:15:60:85:89:10"},{"OID":"certificatePolicies","Value":"30:4b:30:08:06:06:67:81:0c:01:02:01:30:3f:06:0b:2b:06:01:04:01:82:df:13:01:01:01:30:30:30:2e:06:08:2b:06:01:05:05:07:02:01:16:22:68:74:74:70:3a:2f:2f:63:70:73:2e:72:6f:6f:74:2d:78:31:2e:6c:65:74:73:65:6e:63:72:79:70:74:2e:6f:72:67"},{"OID":"cRLDistributionPoints","Value":"30:33:30:31:a0:2f:a0:2d:86:2b:68:74:74:70:3a:2f:2f:63:72:6c:2e:69:64:65:6e:74:72:75:73:74:2e:63:6f:6d:2f:44:53:54:52:4f:4f:54:43:41:58:33:43:52:4c:2e:63:72:6c"},{"OID":"subjectKeyIdentifier","Value":"04:14:a8:4a:6a:63:04:7d:dd:ba:e6:d1:39:b7:a6:45:65:ef:f3:a8:ec:a1"}]},"Algorithm":"sha256WithRSAEncryption","Signature":"dd:33:d7:11:f3:63:58:38:dd:18:15:fb:09:55:be:76:56:b9:70:48:a5:69:47:27:7b:c2:24:08:92:f1:5a:1f:4a:12:29:37:24:74:51:1c:62:68:b8:cd:95:70:67:e5:f7:a4:bc:4e:28:51:cd:9b:e8:ae:87:9d:ea:d8:ba:5a:a1:01:9a:dc:f0:dd:6a:1d:6a:d8:3e:57:23:9e:a6:1e:04:62:9a:ff:d7:05:ca:b7:1f:3f:c0:0a:48:bc:94:b0:b6:65:62:e0:c1:54:e5:a3:2a:ad:20:c4:e9:e6:bb:dc:c8:f6:b5:c3:32:a3:98:cc:77:a8:e6:79:65:07:2b:cb:28:fe:3a:16:52:81:ce:52:0c:2e:5f:83:e8:d5:06:33:fb:77:6c:ce:40:ea:32:9e:1f:92:5c:41:c1:74:6c:5b:5d:0a:5f:33:cc:4d:9f:ac:38:f0:2f:7b:2c:62:9d:d9:a3:91:6f:25:1b:2f:90:b1:19:46:3d:f6:7e:1b:a6:7a:87:b9:a3:7a:6d:18:fa:25:a5:91:87:15:e0:f2:16:2f:58:b0:06:2f:2c:68:26:c6:4b:98:cd:da:9f:0c:f9:7f:90:ed:43:4a:12:44:4e:6f:73:7a:28:ea:a4:aa:6e:7b:4c:7d:87:dd:e0:c9:02:44:a7:87:af:c3:34:5b:b4:42"}
EOF
RUN

NAME=pFx PKCS7 decoding
FILE=malloc://4096
CMDS=<<EOF
w6d MIIDVgYJKoZIhvcNAQcCoIIDRzCCA0MCAQExCTAHBgUrDgMCGjAcBgkqhkiG9w0BBwGgDwQNV2UgdGhlIFBlb3BsZaCCAdkwggHVMIIBQKADAgECAgRpuDctMAsGCSqGSIb3DQEBCzApMRAwDgYDVQQKEwdBY21lIENvMRUwEwYDVQQDEwxFZGRhcmQgU3RhcmswHhcNMTUwNTA2MDQyNDQ4WhcNMTYwNTA2MDQyNDQ4WjAlMRAwDgYDVQQKEwdBY21lIENvMREwDwYDVQQDEwhKb24gU25vdzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqr+tTF4mZP5rMwlXp1y+crRtFpuLXF1zvBZiYMfIvAHwo1ta8E1IcyEPJ1jIiKMcwbzeo6kAmZzIJRCTezq9jwXUsKbQTvcfOH9HmjUmXBRWFXZYoQs/OaaFa45deHmwEeMQkuSWEtYiVKKZXtJOtflKIT3MryJEDiiItMkdybUCAwEAAaMSMBAwDgYDVR0PAQH/BAQDAgCgMAsGCSqGSIb3DQEBCwOBgQDK1EweZWRL+f7Z+J0kVzY8zXptcBaV4Lf5wGZJLJVUgp33bpLNpT3yadS++XQJ+cvtW3wADQzBSTMduyOF8Zf+L7TjjrQ2+F2HbNbKUhBQKudxTfv9dJHdKbD+ngCCdQJYkIy2YexsoNG0C8nQkggyaxZd/J69xDVx6pui3Sj8sDGCATYwggEyAgEBMDEwKTEQMA4GA1UEChMHQWNtZSBDbzEVMBMGA1UEAxMMRWRkYXJkIFN0YXJrAgRpuDctMAcGBSsOAwIaoGEwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAgBgkqhkiG9w0BCQUxExcRMTUwNTA2MDAyNDQ4LTA0MDAwIwYJKoZIhvcNAQkEMRYEFG9D7gcTh9zfKiYNJ1lgB0yTh4sZMAsGCSqGSIb3DQEBAQSBgFF3sGDU9PtXty/QMtpcFa35vvIOqmWQAIZt93XAskQOnBq4OloXiL9Ct7t1m4pzjRm0o9nDkbaSLZe7HKASHdCqijroScGlI8M+alJ8drHSFv6ZIjnMFIwIf0B2Lko6nh9/6mUXq7tbbIHa3Gd1JUVire/QFFtmgRXMbXYk8SIS
b 0x1000
pFp
EOF
EXPECT=<<EOF
signedData
  Version: v1
  Digest Algorithms:
    sha1
  Certificates: 1
    TBSCertificate:
      Version: v3
      Serial Number:
        69:b8:37:2d
      Signature Algorithm:
        sha256WithRSAEncryption
      Issuer:
        organizationName: Acme Co
        commonName: Eddard Stark
      Validity:
        Not Before: 06/05/2015 04:24:48 GMT
        Not After: 06/05/2016 04:24:48 GMT
      Subject:
        organizationName: Acme Co
        commonName: Jon Snow
      Subject Public Key Info:
        Algorithm: rsaEncryption
        Module: 01:00:01
        Exponent: 128 bytes
      Extensions:
        keyUsage: critical
        4 bytes
    Algorithm:
      sha256WithRSAEncryption
    Signature: 128 bytes
  SignerInfos:
    SignerInfo:
      Version: v2
      Issuer
        organizationName: Acme Co
        commonName: Eddard Stark
      Serial Number:
        69:b8:37:2d
      Digest Algorithm:
        sha1
      Authenticated Attributes:
        contentType: 11 bytes
        signingTime: 19 bytes
        messageDigest: 22 bytes
      Digest Encryption Algorithm
        rsaEncryption
      Encrypted Digest: 4 bytes
      Unauthenticated Attributes:
EOF
RUN

NAME=pFx PKCS7 decoding JSON
FILE=malloc://4096
CMDS=<<EOF
w6d MIIDVgYJKoZIhvcNAQcCoIIDRzCCA0MCAQExCTAHBgUrDgMCGjAcBgkqhkiG9w0BBwGgDwQNV2UgdGhlIFBlb3BsZaCCAdkwggHVMIIBQKADAgECAgRpuDctMAsGCSqGSIb3DQEBCzApMRAwDgYDVQQKEwdBY21lIENvMRUwEwYDVQQDEwxFZGRhcmQgU3RhcmswHhcNMTUwNTA2MDQyNDQ4WhcNMTYwNTA2MDQyNDQ4WjAlMRAwDgYDVQQKEwdBY21lIENvMREwDwYDVQQDEwhKb24gU25vdzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqr+tTF4mZP5rMwlXp1y+crRtFpuLXF1zvBZiYMfIvAHwo1ta8E1IcyEPJ1jIiKMcwbzeo6kAmZzIJRCTezq9jwXUsKbQTvcfOH9HmjUmXBRWFXZYoQs/OaaFa45deHmwEeMQkuSWEtYiVKKZXtJOtflKIT3MryJEDiiItMkdybUCAwEAAaMSMBAwDgYDVR0PAQH/BAQDAgCgMAsGCSqGSIb3DQEBCwOBgQDK1EweZWRL+f7Z+J0kVzY8zXptcBaV4Lf5wGZJLJVUgp33bpLNpT3yadS++XQJ+cvtW3wADQzBSTMduyOF8Zf+L7TjjrQ2+F2HbNbKUhBQKudxTfv9dJHdKbD+ngCCdQJYkIy2YexsoNG0C8nQkggyaxZd/J69xDVx6pui3Sj8sDGCATYwggEyAgEBMDEwKTEQMA4GA1UEChMHQWNtZSBDbzEVMBMGA1UEAxMMRWRkYXJkIFN0YXJrAgRpuDctMAcGBSsOAwIaoGEwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAgBgkqhkiG9w0BCQUxExcRMTUwNTA2MDAyNDQ4LTA0MDAwIwYJKoZIhvcNAQkEMRYEFG9D7gcTh9zfKiYNJ1lgB0yTh4sZMAsGCSqGSIb3DQEBAQSBgFF3sGDU9PtXty/QMtpcFa35vvIOqmWQAIZt93XAskQOnBq4OloXiL9Ct7t1m4pzjRm0o9nDkbaSLZe7HKASHdCqijroScGlI8M+alJ8drHSFv6ZIjnMFIwIf0B2Lko6nh9/6mUXq7tbbIHa3Gd1JUVire/QFFtmgRXMbXYk8SIS
b 0x1000
pFpj
EOF
EXPECT=<<EOF
{"Version":1,"DigestAlgorithms":["sha1"],"Certificates":[{"TBSCertificate":{"Version":3,"SerialNumber":"69:b8:37:2d","SignatureAlgorithm":"sha256WithRSAEncryption","Issuer":{"organizationName":"Acme Co","commonName":"Eddard Stark"},"Validity":{"NotBefore":"06/05/2015 04:24:48 GMT","NotAfter":"06/05/2016 04:24:48 GMT"},"Subject":{"organizationName":"Acme Co","commonName":"Jon Snow"},"SubjectPublicKeyInfo":{"Algorithm":"rsaEncryption","Module":"01:00:01","Exponent":"00:aa:bf:ad:4c:5e:26:64:fe:6b:33:09:57:a7:5c:be:72:b4:6d:16:9b:8b:5c:5d:73:bc:16:62:60:c7:c8:bc:01:f0:a3:5b:5a:f0:4d:48:73:21:0f:27:58:c8:88:a3:1c:c1:bc:de:a3:a9:00:99:9c:c8:25:10:93:7b:3a:bd:8f:05:d4:b0:a6:d0:4e:f7:1f:38:7f:47:9a:35:26:5c:14:56:15:76:58:a1:0b:3f:39:a6:85:6b:8e:5d:78:79:b0:11:e3:10:92:e4:96:12:d6:22:54:a2:99:5e:d2:4e:b5:f9:4a:21:3d:cc:af:22:44:0e:28:88:b4:c9:1d:c9:b5"},"Extensions":[{"OID":"keyUsage","Critical":true,"Value":"03:02:00:a0"}]},"Algorithm":"sha256WithRSAEncryption","Signature":"ca:d4:4c:1e:65:64:4b:f9:fe:d9:f8:9d:24:57:36:3c:cd:7a:6d:70:16:95:e0:b7:f9:c0:66:49:2c:95:54:82:9d:f7:6e:92:cd:a5:3d:f2:69:d4:be:f9:74:09:f9:cb:ed:5b:7c:00:0d:0c:c1:49:33:1d:bb:23:85:f1:97:fe:2f:b4:e3:8e:b4:36:f8:5d:87:6c:d6:ca:52:10:50:2a:e7:71:4d:fb:fd:74:91:dd:29:b0:fe:9e:00:82:75:02:58:90:8c:b6:61:ec:6c:a0:d1:b4:0b:c9:d0:92:08:32:6b:16:5d:fc:9e:bd:c4:35:71:ea:9b:a2:dd:28:fc:b0"}],"CRL":[],"SignerInfos":[{"Version":2,"Issuer":{"organizationName":"Acme Co","commonName":"Eddard Stark"},"SerialNumber":"69:b8:37:2d","DigestAlgorithm":"sha1","AuthenticatedAttributes":[{"oid":"contentType","length":11},{"oid":"signingTime","length":19},{"oid":"messageDigest","length":22}],"DigestEncryptionAlgorithm":"rsaEncryption","EncryptedDigest":"51:77:b0:60:d4:f4:fb:57:b7:2f:d0:32:da:5c:15:ad:f9:be:f2:0e:aa:65:90:00:86:6d:f7:75:c0:b2:44:0e:9c:1a:b8:3a:5a:17:88:bf:42:b7:bb:75:9b:8a:73:8d:19:b4:a3:d9:c3:91:b6:92:2d:97:bb:1c:a0:12:1d:d0:aa:8a:3a:e8:49:c1:a5:23:c3:3e:6a:52:7c:76:b1:d2:16:fe:99:22:39:cc:14:8c:08:7f:40:76:2e:4a:3a:9e:1f:7f:ea:65:17:ab:bb:5b:6c:81:da:dc:67:75:25:45:62:ad:ef:d0:14:5b:66:81:15:cc:6d:76:24:f1:22:12","UnauthenticatedAttributes":[]}]}
EOF
RUN

