Files
certigo/tests/dump-pkcs12-chain-to-pem.t
T
Isaac Semaya 328db64fa0 Add --leaf flag to view the first cert only, including for json and pem
added dump-pkcs12-chain-to-pem.t to contrast with dump-pkcs12-chain-to-pem-first-only and show that multiple pem blocks are dumped without the --first flag.t
2022-02-23 16:44:05 -08:00

173 lines
11 KiB
Perl

Set up test data.
$ base64 --decode > example.p12 <<EOF
> MIIPeQIBAzCCDz8GCSqGSIb3DQEHAaCCDzAEgg8sMIIPKDCCCd8GCSqGSIb3DQEH
> BqCCCdAwggnMAgEAMIIJxQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIiDEQ
> SD63OWcCAggAgIIJmAsqUZIzFnjUVWxcMVPW6iG+ai5/ooa+yREv4KZ3od+C6XfS
> qUoECHeGQnfaa2/2FAzS5LYrS2d99Id5Yd0udJKPMprxfmfWZF8mTQ8+QUv4DNig
> q3n2YWg8jN9iI3mTkTDuL0MC25Z8xff6MfVgY7E559vL3WIuvFPw75T+C7LgtHaM
> YaTZWcmCoYd8S6IvCPL7M3DjZUi7w3/b7oqispO9eIOFblq+8/x552AsDC54LJuF
> cYe8GHJhdYOXb7RoohVO6EIUf0Q6Z6l67ajpDRTv3esBhbcViPhUFeK5akXOcY0t
> rkyN0F1Eyhka2ih6mgPRvHf+6AoHOO3vwX4A4PRtb/uM1nyRUFhnYrn9R7MdVqem
> HKQvQNVNu/fp1Djzv+JsjVHJ2CrtF/hUE91nBFzK0nYLmtnCffyHHNNNhb/2tT+N
> clGE48vwQPE47mKlDqmjxIYVkJ55IA3xN8JtAJuPkqk4F7cD98kGKv3k+zRS5+pF
> rX8uwFcpO8MFZ3SSF8fIZBgapvB8u7VrlmTYwdocEbmICCoWB2k9FKLIZfdODGfH
> zOK0Stn3zJJD2OeTkqD/bisQOuPyPnzZHzSE2PLucvums7RNQDbgRPiisC3uVeu8
> owMxwwGs3J5WLCUiieTdO1/jYuOrKtA6pdRrwpyjThL9wSgnDDp2ZvN0CH2Tm2rK
> 7INqkn+aKbWA3ZUuUHydFZkOFlfJHeCQMF/HP0vUu5Srau97Rb2nUgjCmK+Snhul
> 9jHwRGTSUUyYlRRkNcW/FUTuH/Y0m9ZM0vSQvV4fdf8Y6IFVrrNkbf9UiQHnE8Fj
> 8dtZWVBK1lPLhHEv7Xhgc2S1n1SzqhUqiDXlrtQ9k3WRrXlQzbxip2K+ZTpp1KkM
> 1IXA0Q3m0smyibs7G7s3LFF82oPSqwX8bfcATZvy2KrOe8dbagvrOZgFKidUfhYG
> 3IJ5O/wC1Xdrk3wtWpkqSXXD27ENwVFCD9Cy2r0gaIyWBR2h15SWJJ7/M2XyXJDc
> sMmehdqbpswPPHpMI50Iw6DgTxwXFSrvFnHl8hy8pXaZQzorONNpubaykhimnfI7
> U2bJyt1Jsx2bfKiJsW128jdc6ZKOHkbtKQiEzPHmL8RLl3sy/ZgkAbBdmRMjpgcA
> 0eTn7tyGo8uveRoLQqgmM9TKYuhmlZ8a9/fLuKkKhCpZPTlkGnnHvqz4z4330FnZ
> AQ8UfVE6dzp6k8lTdrU5k+1eN1wWiKI3h8Epjj+BKY5h3Wc7mPV27woCiidhih1c
> oYT7H+JnH43bFsiNuIXtOnYtooENFtb7wmgT5MhpFqsalLR1YAgZT3WIuYSzXleM
> 71R9CprcjMwoPaEbpbvSB3Zv6zy4HoTp3fEeroDMPBz2FU1HFOtm3tEH9gMVs1vZ
> hzRehN9mZCWKaHHwDSa3f4x5TAOzyCOq0Ja9KWAXFBdnwslWoZY38hVbV5BFBm3X
> KSHdgI/JFYElCTGFvKD9lLG8xah4s02vlft32MenhqnCjUm6r4yIxAfz/xCDAEcp
> x7aGEXKx6D7Ya3zFtNvj55eUPLQfUdZpinI7+WxmF6G4tXS+gE1XqGgkIKhs78Ar
> GUOX6jGpVrs6yhAMpD7VSSM4jnOMFNHudGm++L86jIYlepayt6zE0KzWpCNJ2z4y
> wo8wwH7QpvBtP9DyY4Oo8morQ9D3RVqhodAry2y8X3WRQqKHdVVzHCGXIeo5yipr
> 1+JxKXZWXNs8vcLUNKYEOtUD9iktmWe2FEwflD03HxGxiOo8wryNTvjdZfPU0GLq
> YRT/44v/ppeL839NkImapaGzDJZuKHsvkew9efFm04jPzZITyJ3D65F0lATCECcz
> h9NMwxPwVxh6+iqpqgua5MZVJyH3H4nyC9j32e5FAZ4VNHa6VL/e7lkkGsPjIeaT
> P8YKSr3yvc1egBYleaw0lEzFLK9BlRPdC6O/eR9euxe/pDR5kpHs+NBA1fZKLRWP
> 6tI+ariueSzu9iesUctk5/sDHWOKVtigER48MeZzalrvz2I+PFYfD2uxCaElglTl
> kRsFu6AFkR83oF5GNjbIq5jaViEi8i/5Er12+fkP5pgBjF1aleKjIXtGWMA2khLY
> VJvnqSjuef3X7SCRgriOFzrEkhBw1Rfjhkp0KfIsH44mtA+sf1tcOSJz9vxK1mX8
> Z2Ei5tNhyZRzBae/adpeS/WC8MzuXA+hEL9eq+sXSKCbJuPglyK0h7sak72HAfiG
> 5Hq2ssQdeUlCAf5aRZ8Ve7Bb6Jo7g5hpk7rZ0LI6RI2zFYwQG7bxEDIdFOHguAMJ
> ub9XRaiTsDzEDw4uybSIq5uR4KQiUYsASoYEkSNa7c0P4yaZbMwmKUVhG7LAx4HQ
> DShDoI6ZUtrnAdZcJzSjDV3AOc33UpUqiDtny/DrBIKFe3T7akx3aXWN4d5DcDZi
> vMtcL+Awr5hAAjCRaktdwZZJyw42WGIIV62jGNc+sKSEJCwd4Yo0j6RcwIQTKvvm
> ci0lOvqOnfoadZH8vx7lCK4j8yUIM6DdGFvlDoyWyG1dBRrUlcj6TqnKp8wwzZEF
> up3N4hHWFel1Bzi+TH/mNIMywU87Lx64pmBmj+/zRPNAZHlYFlqKTAwfRWfwme+y
> ESwoNLGGp4fTrwGtjY51uOCWkBS72N/jp2C6ic7r1Ug1PX2RZLa+yifxrEwUrsd/
> T1HuZYVXhOoIuYB+eLwiTpUt8TNBD70d91XSZirvCySAZAstf0MopU22HtAuDoCR
> b+lAv43pvij3Az+yE9ssx3leEO0yrksjB8PSQilnH+/sqx6wBGrfa3hAwIgQr+xv
> DLCiearuxnsoyxGCOJYsOgLRk+tBZCuTXuXTwY9iNMOI3rrE3s/CfHQB1Jwx2FTt
> WSzpRDh0ptV1yWP9Lq+VgV6GoDgINchZoG3Y+aWlDBwnqX+4mMaHHU7dqtU/93d2
> IGw1ozzAMnqmrr5oyM1UiSyQsXPPu+XDXfJE33073ZTlysJQhkbgQucF7kMhVi8G
> 2DQnP/iGJVK/eA1oHCNUfNLmE4NPsJgNxEgEA6C2i3OHP/bH1q72lK5h01oxnTz3
> 5jI1TEqCtMpRc7tZUJVrMEX+Y4DerxP1qoO+oCFKDHZhCxMDFdo/qAaWNUuHAQ4g
> TqfVLff/qZyUNT6zvLGcfpDbRr+xcc2aQ6L4u6vEJdnHzLth4mDJnkhABlMJluFA
> 7tMISCmhRXTzUzKlf2gpin+F554DwxCOUCPpZZhNG5nk27dNajW/Q+gJEreDLaMn
> gDNi+kPIpsX+EdnM7eEhiR5CH0rcMIIFQQYJKoZIhvcNAQcBoIIFMgSCBS4wggUq
> MIIFJgYLKoZIhvcNAQwKAQKgggTuMIIE6jAcBgoqhkiG9w0BDAEDMA4ECGNbB7nH
> AFs1AgIIAASCBMjM3+cKjQEU4MqtIDwtpLLXwnpgpbkrTPbpYaUW8klkmqYn5xaT
> cGiG7mUl6n4MXF5wWpLL0bAOkvMiD9uAL5c1cJd9LBaJCA6XKW/fPLoEzcjabloE
> MHDK9Z/wBPIG1rqbsb0zrvuLYYG5TZMmTNJmW1MV7TdVarDsul4fpThQ4R6leBmW
> +uV4V9S7ZlKOj8jjyqlIbyL6kX4mGKeIaP3P/UpTH1rpPm9lMbjmmGD/Bv5vOwnw
> HLqYB6qgFNlDEIgfuxCZfxNbudPkiQqiPsF73Q2at1mdrMLkOAmxLH7NYR2DO5qo
> ShX0oeJJGX4RmovSZDKVrmIu4QKIWtp4Wkjb4GG8T1jcq+kMyaXoVPP63Zr9WmM7
> yF84kQX+lG1YB/xrscMeoM3RyjimEUevPV+0OOSitmf8wzZmUkeUJ2E0XC/B9cPM
> +f60e68HUxpsRZWDtYlpdSKjArTwWPGSSAYp/aafmabvaktYUIRDAZgtqK9PpLJw
> TLAJpW2KhN6aC1XyP3uVNVmeZ5iRmJZnYVtrDoCbGe8xs8DNZ2zwXkSmB+1ZIBwc
> fzW4Bz+4IEp/bK4Jwq0XjF2RkICDUQM0FahbhFvepcUvJjDeZe14K4xfFUPJiEpU
> RP5kctrLHiWpOmd+Ee6FBeRCpMsSbc/C/U8NUhq3f9uHKY8E7iRnhtQjkrHBJOhm
> 9/k98PsYSA8ztOA1inptpgssdsHtx1tmNq96VrmDIx8zpmO5AIYDcvq1s52lI9tJ
> EaVxz74wvIqyeWeTPiQv7ymOzM2FwBFUp1PoKrRRdzlzVt8QyMEdHQjoVjdHZtRY
> BnzpbATIAuJ2gpi7e012JR9O+Oquq+pLuX0zYC6lRl+sslZaLyUsRlhZElVmOwer
> wr4inssnX6k6WJUqHWFWWLcqcB+4I5rInRqESSNG2AwFiruUp4LMz/fyTNG58Wvf
> 5r+96eE3CC1yQBu/lqjitlYeUP4Glh/5YIeZblrdEACw8bS6RV1dWIXLtb58FIqW
> A2WgbB8WGjL3BEtfARfjrSxXL3N3efyZm5syWbe4o3Ol2NstjZEdTwtXX7ti8h5H
> BjLml9UZBBmC3UMRxamUIZtW2JUigzgq6hEGtGiLgHaxXE1TvYFwQWToVWY/KHNi
> +j4fFbehUi6xtdGcf0Qyuy9FwHiK03kxmDGCZ9ekRc+cBOWfQPbs6oNnfhtacx6B
> TmFKMwolvn5TjHaXEMdB5RZiIiqFDj2evSfFXN+HXZfK7cJNGEhUkZ3f77zBEcNm
> fiStWcf7xY7W5azU2v6E3dgamHgP3VYOBSF4lOnIZk4CXkyrXwhSQ1CHkKGFoYtK
> Zd++sVbo5ANlrJpDSBgSRyBingveMt+1L6W2/sqMHPrH6vanwn1cEC32hX4V8tx5
> i/3LbkxdnfWoS2IB+yuzyOxIi8yEdOaC0/FH0Mg2f0ZIBCaOI5OMbbHsdaJxQqkO
> mGByuTcKaNIxDdVFhiaJN065PVYiZq9M1rItM3qladVGOfsSq+yhAhVsTxH4t8K0
> Z2FTEUAjvN/qWW6hr5PkoWX5nF5/R4S503mkqVEro3iZTxdTNwOiK3NyVh/P1S8+
> +JwYrYmDsGhGMgDHnckVs+p9NV+OE4FJ6KSSJR8oE+4+EgcxJTAjBgkqhkiG9w0B
> CRUxFgQUrnxa10T2O2MEu61uYM1/Fso/KHkwMTAhMAkGBSsOAwIaBQAEFNaZfmGF
> TlfIjZvesIFwoYNabyLXBAiheBe+L56f7AICCAA=
> EOF
Dump PEM blocks from a PKCS12 keystore. Multiple pem blocks are displayed
$ certigo --verbose dump --pem --password password example.p12
-----BEGIN CERTIFICATE-----
MIIEHzCCAgegAwIBAgIRAMNYYdrU6LgeLMBAy2UeGDowDQYJKoZIhvcNAQELBQAw
EzERMA8GA1UEAxMIQ2VydEF1dGgwHhcNMjIwMjIzMDI0MTIxWhcNMjMwODIzMDI0
MzE2WjAQMQ4wDAYDVQQDEwVBbGljZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBALx3haTR1grI1eO38F75leR6SnaD6puo9VJX1BScl8ZsWNCqE6XV6Fj+
Q5LWWYjui9qZW+uLdFCsYfyshzjvJ7+2xOwTAbAHP6GJjJqqLuaA1chFgFHepZVT
e0zf96PA1TDkcCILeeEw6qgoi8pafQxE3eLlLIPYYQMC0Y7QMk0B/5UFToTA1PCM
jstBe+QRjgzADGCbmn0mZulvZ9/aVCuLGuY8mhSEyJw6qxGwBrkbObZhVj4+fbfC
0i0HoMBPHGIa5K2xJSCBliVynXCtdGzpFjH64uLn+ShzQPUir1lpRCFt4UPgpP1l
W4uSWg3WiF+XHokVjmlGpLjQWZZtIs0CAwEAAaNxMG8wDgYDVR0PAQH/BAQDAgO4
MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQUrSU3Jr/d
3TccQDrYn+0Z8vNRSAMwHwYDVR0jBBgwFoAU5GRfJoIow7TFwMIn8/QYzRf8U+gw
DQYJKoZIhvcNAQELBQADggIBAAz2a8UWg4qay3s8iOUiMH55l+O6KpBUlEDEvunJ
Q8EwueXWr5P4gfDuKorK7dg9fql5Q9N3Yj3c4a6+0HEN26jmPZb0xKQlqoQ72K6H
GbGEqXvcZ3Ai/EBH09e5DcM0lqEtre5ftBFespelQ423uDWTbWKZONOiaWEUkyUL
LBtPXVW514bctIwrusc7ReSJ3PW3f9rP4pIyjcA8ikUi2bc7m+Ti1qQQtbVRwJV2
wJLCHqszIOhyZpq4Ni92auK9Gqvx3W3wSQQ74od0odkeCuHmsTOHOy5ug+0TTDf/
ss+mmo8BFsOeAxVmVQoM0B3rbJeDiMiLX2BLFMHIqGKlTwLV3DtAotJhrRWpM3Ej
+iUHrAgh64P3m1x0t/yYy6HH3FuARLI8S9m7vCQPTOM67gF8A0sQfTVbrbM9VJ9Z
WrOL/ffwbkIakDXi4gEr1ednMyIyNwvbh9K+aLoHAzO1ZXGBqTZnb2eyjv6C/3zd
tHOWSHtgiH0VFeckpZc4UzOXzbcsDZk9xKWIxhFSqPcOZxhZLLBSXB9VZfkFAOcE
h01onBl0rqaFtkwb7gyz7h2+V04E3+YWS75I8GfiUi5EDgtEErY5AN6RgmP+nNoS
26M7EEhpxkSJvoxyzyor2T+7SlIdoerMi4A0zHZ2M3tQP0nOoSbeJiz5QK72hcC5
4zi0
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIE5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDEwhDZXJ0
QXV0aDAeFw0yMjAyMjMwMjMzMjdaFw0yMzA4MjMwMjQzMTZaMBMxETAPBgNVBAMT
CENlcnRBdXRoMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvHQKjraI
FiUqfq3PHOuBYd5kDhFigiKMhgM5irokpdPA6ptZZ4fHXNRZnFt8JQDDPtIPSwph
OLRiVzj+y50SHdHTTZoVmtHJrsSMgIjUCGJnAYS77H+axE7bmHwzIJRc6Xo5ekGT
Jp83GuXPocLZ/9TH7SsrR8zFQhyfHnCM4TN0EMpHAe6TlW1GWUG/WKCc3uDSav5o
2KdtN+Y/D5Ca1gpO0gu7RMCXveu/1Gf3eMDIHV0rUwOrs87nuTGD8zt9JpDP0UzU
q48xa14Wr9nM5q9sCuuHqzOD+o9zGoyTChnJLjzuVze7fY4J7n3U9bv1l30OGcAb
DGB9HuMvqwk7HSpG2ZqibCrGXcCjxaGaiHY6IIjfHgbeiXeG46xRAynTx0gLMcah
mWAbhC5fFsQvEWb8f6WO1UvhAmNVq7+No9RXM3ilEMHfLc/Q7l7OfP8Gw3x24mpS
nFUexOQJ3z3p3wP2nDX6q2dXJRNilqnny4A2xCDnzRK8o7hdo8tzXkNwE31jpAWz
2+cGyHhoKWgwmm7XYJa/vAskQ3/9VCD9X+BvodWmTn6SqU+Q4yN0Vh051xRRbGAJ
QZjYbF1L+LOyfuB4PkHkiK7k314istCFFLqe/nz8QKtq0oBXPKAizV3MyFEz+uUD
IerMMo05QjiN+TR2Wbd2Dx+EwcJqoPhozDsCAwEAAaNFMEMwDgYDVR0PAQH/BAQD
AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFORkXyaCKMO0xcDCJ/P0
GM0X/FPoMA0GCSqGSIb3DQEBCwUAA4ICAQAQV90RHcoS4HCaSbXwYOBZ0JDjlEPK
oZG1PMFsOP8J3YJPshybsLP6L+JxQ7tQbnswYdJO7YaDUkP91n+O5w4menfdfdY5
A+QJvib18KGzurLSn+QU5uAUaT0TMfU7O906J1H4hUr9S/cQB9nvWLZbrtkIFo30
RRocu8zt2/Q0C50rTSWD96Vgy8uHUThHhfpCbQCnFc4czm9SDhaEpgOyCBAqOZ4D
9OeB/T+a13k/G8JZr3GhtS3Im7WFB1PLjrbbRHK03vVQMPoeg+/XjJclM8CtV34k
0f1vTONmP4PX8wk8pqh9eyK0kIDf9bmxe4AEyycs49piT4lgToFEAsK+QrnWNsqR
7R6RTg4lWviIdgm8/yHQz/15TyfuNk6cSNaEDPkEKx71cYjDjda3JtlrAgXeJ84x
Ox8+zQEuBummlvxvEhk2Cs9QHbL4DcgXbHijakuzOHKonzRiSDEBkm/JFizBB8+k
d6hgvaH2UkavFPq64s7/+lBw1akQ3AiT1CTq7pta5Eru352OqDdUS/iew8n5cZHi
PPGjoAhvUU+Ij8kFMe7ICuDy25jn/hxGbCbjuJHQikZJssX983cLd96/7d6dcqRU
6hRqpe+kXdFNpxj/83JGXGLpU6obNBGg27n4o2SINsIIHci6mDGi0mbs08eEkyqL
2GbYHPp6z2n/UQ==
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEowIBAAKCAQEAvHeFpNHWCsjV47fwXvmV5HpKdoPqm6j1UlfUFJyXxmxY0KoT
pdXoWP5DktZZiO6L2plb64t0UKxh/KyHOO8nv7bE7BMBsAc/oYmMmqou5oDVyEWA
Ud6llVN7TN/3o8DVMORwIgt54TDqqCiLylp9DETd4uUsg9hhAwLRjtAyTQH/lQVO
hMDU8IyOy0F75BGODMAMYJuafSZm6W9n39pUK4sa5jyaFITInDqrEbAGuRs5tmFW
Pj59t8LSLQegwE8cYhrkrbElIIGWJXKdcK10bOkWMfri4uf5KHNA9SKvWWlEIW3h
Q+Ck/WVbi5JaDdaIX5ceiRWOaUakuNBZlm0izQIDAQABAoIBAEGv/tqVcF7N5Q67
e4H+x6mcnft0uv6KAwcyKW8NrTCxbrs7rCFuzs7FwFObdhVt3zzPmuQb9OxxSK3C
jFbhtB7z2urVLQ9nV1w8Ds+RZUtduCVXZAQk7919/Umr/ioK+cNSu2qCSXadkAwQ
JbjflRoDnrqIWd2SOy3Le7KlCgMgiAqyRaEcvt9Gnc3vqKHEh3XA4z2sYBBECy29
xzzWyq9U1Lzhf1xf0PrPQsxfeuxROFn7WZR2iP+SxI1N/mot2ne9dZRLY3pZjLl4
7SdNx9DJrfltJHHCIHDtGumpKe4Ob15uO4WQ86a/sMcmWW71h9Clpmue9tFYKM3a
A3NwZMECgYEA1/Fix/WaOkcU8+8ggSqjVS8Bg17U27RDi0n+1Kh6j41CGuUThrJC
tePmVs/gIT+o2v9iVcvB2hTun2NwLjAUXt4Fo49aAmzcW66uNxFmHVO7+h0xRNw5
67L94TjOwHGu1THbgWCVj/gOrlkYwYPxBKlN+IPqUNK1k/IUUJxlL1UCgYEA321d
cHzJ8Ps4SxRItu0EOyB95us7NzwkYfrWNybPJxuW74hotXHSvu0i127RZ/QZZd/F
paWRq51RRZe8HxDuuWsolWavRfaWSb1JyJ0n1balbI9/ESN/vcMhi1LusJ+A5p8V
ou7U5bqXqZnzo19umFTr74P0RkJdk7OJye4KdZkCgYBoBpWyhCM23dU/Kbv73WFv
gMR217Es4asEJ7JGGZ9pFgB5Wk9MvQUcAFyPB3cOLU+XqB1j/VM2To0hZVK+PVUi
2kvXHhCbSHvjAsRULOKHUDYm5/c7F+gjHkflPmuDE4DInUsECVYjU7kmzi750ijC
ORkhldLD+q2URrL4nk60PQKBgHMXI/3Q2jlfP0U1gqtv9jD68L/lxlASk+9Axd4N
CMJtbNegncdxhYzCHKN6uzXgQMEAfxBv9FTBqd6+ZbJfB4nN0E79YSYZ+pqrfflw
MtfcyOPeGydZ8PBwNrRNGRU0ZLLnmb6fZl2cO4mq+xzaCN9BR3POtiMHBqsR3dV9
4DdpAoGBALFruy/DW2urx5oFyppFv0xVLuRHzwW5gFyVSoa2/7TElBBQ7luXOVvX
QulcA8LTBbp9ZlJ6O5SrNKZW3QpSWeuRoGaxsfs6Yq1sGDbyiWtuufDknAqEiZg6
LGdAI9LSB35HihR3AzNW+FsQ3p1aiEuWETFH9BaNLE2CdVJ7mLlT
-----END PRIVATE KEY-----