Description
Summary
Tool to parse PKCS7 envelope both signature and encryption.
Example Input
-----BEGIN PKCS7----- MIICQgYJKoZIhvcNAQcDoIICMzCCAi8CAQAxggG/MIIBuwIBADB0MGwxCzAJBgNV BAYTAlVUMREwDwYDVQQIEwh1bml0dGVzdDERMA8GA1UEBxMIdW5pdHRlc3QxETAP BgNVBAoTCHVuaXR0ZXN0MREwDwYDVQQLEwh1bml0dGVzdDERMA8GA1UEAxMIdW5p dHRlc3QCBBKHyTkwPAYJKoZIhvcNAQEHMC+gDzANBglghkgBZQMEAgEFAKEcMBoG CSqGSIb3DQEBCDANBglghkgBZQMEAgEFAASCAQBZGu0PoXCtMJlRzRh0HQkTQyzM AGH2eeagrT6hlmHgVuQ0a0Oam5R/vm0+xj8LUJvL5oCUwUGiuGC3suQJ1HrtVcIm kEPcwluU57nEIwQ22UV5ozFi2H6zCHMYIKy0kmiyLnOpXis6tC4otKMNCa+mA0Qy SHpmv9iNitDeiXv65hem0E+Sbr/ko53i/Js5KUQfO8E1eGX4YNdJdGaKSoNS+pl8 oxnwIp3CannaKc6Uh1nl8B5f+CTz2nYYh7ewiePcDc6D6986cKDbVJFoW5Wd/Mfc cRETN5TBIEjs9F+vwXKNhSUsiz/CQMPsyYo+PqX3wBwQl6n0ZY4wNbGgTU4nMGcG CSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMplCpx7SrPHxUL++xAgEQgDoPMD9Z 8VEvTl8eVCw/YFZDG6fpRdEKURXyNkm//iIw3T35JkWoW8gV9FvouPBcZnObvg+d Uq4wUFIK -----END PKCS7-----
Example Output
0:d=0 hl=2 l=inf cons: SEQUENCE 2:d=1 hl=2 l= 9 prim: OBJECT :pkcs7-envelopedData 13:d=1 hl=2 l=inf cons: cont [ 0 ] 15:d=2 hl=2 l=inf cons: SEQUENCE 17:d=3 hl=2 l= 1 prim: INTEGER :00 20:d=3 hl=4 l= 447 cons: SET 24:d=4 hl=4 l= 443 cons: SEQUENCE 28:d=5 hl=2 l= 1 prim: INTEGER :00 31:d=5 hl=2 l= 116 cons: SEQUENCE 33:d=6 hl=2 l= 108 cons: SEQUENCE 35:d=7 hl=2 l= 11 cons: SET 37:d=8 hl=2 l= 9 cons: SEQUENCE 39:d=9 hl=2 l= 3 prim: OBJECT :countryName 44:d=9 hl=2 l= 2 prim: PRINTABLESTRING :UT 48:d=7 hl=2 l= 17 cons: SET 50:d=8 hl=2 l= 15 cons: SEQUENCE 52:d=9 hl=2 l= 3 prim: OBJECT :stateOrProvinceName 57:d=9 hl=2 l= 8 prim: PRINTABLESTRING :unittest 67:d=7 hl=2 l= 17 cons: SET 69:d=8 hl=2 l= 15 cons: SEQUENCE 71:d=9 hl=2 l= 3 prim: OBJECT :localityName 76:d=9 hl=2 l= 8 prim: PRINTABLESTRING :unittest 86:d=7 hl=2 l= 17 cons: SET 88:d=8 hl=2 l= 15 cons: SEQUENCE 90:d=9 hl=2 l= 3 prim: OBJECT :organizationName 95:d=9 hl=2 l= 8 prim: PRINTABLESTRING :unittest 105:d=7 hl=2 l= 17 cons: SET 107:d=8 hl=2 l= 15 cons: SEQUENCE 109:d=9 hl=2 l= 3 prim: OBJECT :organizationalUnitName 114:d=9 hl=2 l= 8 prim: PRINTABLESTRING :unittest 124:d=7 hl=2 l= 17 cons: SET 126:d=8 hl=2 l= 15 cons: SEQUENCE 128:d=9 hl=2 l= 3 prim: OBJECT :commonName 133:d=9 hl=2 l= 8 prim: PRINTABLESTRING :unittest 143:d=6 hl=2 l= 4 prim: INTEGER :1287C939 149:d=5 hl=2 l= 60 cons: SEQUENCE 151:d=6 hl=2 l= 9 prim: OBJECT :rsaesOaep 162:d=6 hl=2 l= 47 cons: SEQUENCE 164:d=7 hl=2 l= 15 cons: cont [ 0 ] 166:d=8 hl=2 l= 13 cons: SEQUENCE 168:d=9 hl=2 l= 9 prim: OBJECT :sha256 179:d=9 hl=2 l= 0 prim: NULL 181:d=7 hl=2 l= 28 cons: cont [ 1 ] 183:d=8 hl=2 l= 26 cons: SEQUENCE 185:d=9 hl=2 l= 9 prim: OBJECT :mgf1 196:d=9 hl=2 l= 13 cons: SEQUENCE 198:d=10 hl=2 l= 9 prim: OBJECT :sha256 209:d=10 hl=2 l= 0 prim: NULL 211:d=5 hl=4 l= 256 prim: OCTET STRING [HEX DUMP]:591AED0FA170AD309951CD18741D0913432CCC0061F679E6A0AD3EA19661E056E4346B439A9B947FBE6D3EC63F0B509BCBE68094C141A2B860B7B2E409D47AED55C2269043DCC25B94E7B9C4230436D94579A33162D87EB308731820ACB49268B22E73A95E2B3AB42E28B4A30D09AFA6034432487A66BFD88D8AD0DE897BFAE617A6D04F926EBFE4A39DE2FC9B3929441F3BC1357865F860D74974668A4A8352FA997CA319F0229DC26A79DA29CE948759E5F01E5FF824F3DA761887B7B089E3DC0DCE83EBDF3A70A0DB5491685B959DFCC7DC7111133794C12048ECF45FAFC1728D85252C8B3FC240C3ECC98A3E3EA5F7C01C1097A9F4658E3035B1A04D4E27 471:d=3 hl=2 l=inf cons: SEQUENCE 473:d=4 hl=2 l= 9 prim: OBJECT :pkcs7-data 484:d=4 hl=2 l= 30 cons: SEQUENCE 486:d=5 hl=2 l= 9 prim: OBJECT :aes-256-gcm 497:d=5 hl=2 l= 17 cons: SEQUENCE 499:d=6 hl=2 l= 12 prim: OCTET STRING [HEX DUMP]:A650A9C7B4AB3C7C542FEFB1 513:d=6 hl=2 l= 1 prim: INTEGER :10 516:d=4 hl=2 l=inf cons: cont [ 0 ] 518:d=5 hl=2 l= 58 prim: OCTET STRING [HEX DUMP]:0F303F59F1512F4E5F1E542C3F6056431BA7E945D10A5115F23649BFFE2230DD3DF92645A85BC815F45BE8B8F05C66739BBE0F9D52AE3050520A 578:d=5 hl=2 l= 0 prim: EOC 580:d=4 hl=2 l= 0 prim: EOC 582:d=3 hl=2 l= 0 prim: EOC 584:d=2 hl=2 l= 0 prim: EOC 586:d=1 hl=2 l= 0 prim: EOC
Additional Info
Above data is parsed by using openssl command
openssl asn1parse -inform pem -in encrypted_pem.p7
where encrypted_pem.p7 contain same data as mentioned in example input.
Also it is possible that encrypted envelope is in DER format. For that openssl command will be
openssl asn1parse -inform der -in encrypted_der.p7
Additional Request
It would be nice if UI can make reading easy by provding data in easy to read section with names. e.g. in above example output. 211:d=5 hl=4 l= 256 prim: OCTET STRING [HEX DUMP]: can be sectioned as encrypted_key 518:d=5 hl=2 l= 58 prim: OCTET STRING [HEX DUMP]: can be sectioned as encrypted_content