I'm sure OpenSSL is able to parse more than one counter signature per
signature.
Can pleas some OpenSSL expert tell me how to do it? I think the code I sent
in the previous
e-mail should be close to the solution. I just need to know how to get the
other counter signatures
(I already did in Java with Bouncycastle, and it has been straightforward).
I've searched through the net for some documentation, but, as stated on the
site, the OpenSSL documentation
is very incomplete, and I couldn't find any useful information.
Many thanks for your help.
Massimiliano Ziccardi
On Tue, May 20, 2008 at 9:37 AM, Massimiliano Ziccardi <
[EMAIL PROTECTED]> wrote:
> Sorry, I've received an error about the attachment, so I'm not sure you've
> got the e-mail.
> Follows the original e-mail.
> At the end, I've also included the PEM encoding of the P7M I tried to send
> you before (it was DER encoded).
>
> Regards,
> Massimiliano Ziccardi
>
>
> On Tue, May 20, 2008 at 9:25 AM, Massimiliano Ziccardi <
> [EMAIL PROTECTED]> wrote:
>
>> Hi all.
>>
>> I've been able to parse the first counter signature of each signature.
>> At the end of this e-mail, you'll find the code I use to parse the file
>> (no error handling, it's just a working snippet).
>>
>> Attached you'll find my test P7M. The signature/countersignature tree is
>> as follows:
>>
>> SIGNATURE 1
>> COUNTER SIGNATURE 1
>> COUNTER SIGNATURE 2
>> SIGNATURE 2
>> COUNTER SIGNATURE 1
>>
>> Can someone please give me an advice about the changes I've to make to the
>> following code to parse the COUNTER SIGNATURE 2 too?
>>
>> Many thanks.
>>
>> #include <openssl/pkcs7.h>
>> #include <openssl/bio.h>
>> #include <openssl/err.h>
>> #include <openssl/x509.h>
>>
>> void parse(char *pszFileName)
>> {
>> // Parsing PKCS#7 file
>> BIO *foo = BIO_new_file(pszFileName, "rb");
>>
>> PKCS7* pP7 = d2i_PKCS7_bio(foo,NULL);
>>
>> STACK_OF(X509) *pSigners = PKCS7_get0_signers(pP7, NULL, 0);
>>
>> STACK_OF(PKCS7_SIGNER_INFO) *pSignerInfos =
>> PKCS7_get_signer_info(pP7);
>>
>> // Looping through the signatures
>> for (int i = 0; i < sk_PKCS7_SIGNER_INFO_num(pSignerInfos); i++)
>> {
>> PKCS7_SIGNER_INFO *si = sk_PKCS7_SIGNER_INFO_value(pSignerInfos,
>> i);
>> X509* pSignerCert = sk_X509_value(pSigners, i);
>>
>> printf ("FOUND SIGNATURE : %p\n", si);
>> // Parsing counter signatures
>> ASN1_TYPE *pCounterSignatureAttribute = PKCS7_get_attribute(si,
>> NID_pkcs9_countersignature);
>>
>> ASN1_STRING *pSequence =
>> pCounterSignatureAttribute->value.sequence;
>>
>> if (pSequence != NULL)
>> {
>> unsigned char *ps = NULL;
>> ps = pSequence->data;
>>
>> PKCS7_SIGNER_INFO *cs = d2i_PKCS7_SIGNER_INFO(NULL, (const
>> unsigned char**)&ps, pSequence->length);
>> printf ("FOUND COUNTER SIGNATURE: %p\n", si);
>> }
>> }
>> }
>>
>> Regards,
>> Massimiliano Ziccardi
>>
>
>
> Here is the PEM ENCODED P7M file
>
> -----BEGIN PKCS7-----
> MIIf8AYJKoZIhvcNAQcCoIIf4TCCH90CAQExCzAJBgUrDgMCGgUAMCQGCSqGSIb3
> DQEHAaAXBBVEb2N1bWVudG8gZGkgcHJvdmEuDQqgghmTMIIE+TCCA+GgAwIBAgIE
> Q51TGTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJJVDEaMBgGA1UEChMRSW4u
> VGUuUy5BLiBTLnAuQS4xLTArBgNVBAMTJEluLlRlLlMuQS4gLSBDZXJ0aWZpY2F0
> aW9uIEF1dGhvcml0eTAeFw0wNzAxMTcxNDAxMDFaFw0wODAxMTcxNDAxMDFaMIIB
> HjELMAkGA1UEBhMCSVQxVzBVBgNVBAoMTklOLlRFLlMuQS4gLSBJbml6aWF0aXZl
> IFRlbGVtYXRpY2hlIHBlciBTZXJ2aXppIEFwcGxpY2F0aXZpIFMucC5BLi8wNTI2
> Mjg5MDAxNDEPMA0GA1UEBwwGTUlMQU5PMREwDwYDVQQLDAhERUxJVkVSWTEfMB0G
> A1UECwwWRUJJIFNPTFVUSU9OICYgU1VQUE9SVDEaMBgGA1UEAwwRUk9CRVJUIEJF
> VFRBw6dTQ0kxEzARBgNVBAQMCkJFVFRBw6dTQ0kxDzANBgNVBCoMBlJPQkVSVDEc
> MBoGA1UEBRMTSVQ6VFJQRlJVNzZBMDNaMTE0TTERMA8GA1UELhMIMDAwMDI2Njcw
> gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM3kx9UFiChtOXe1kCHOqxJiZ1Wh
> s9zzMfMowRuYGFkx22hmasSKivNolrWlfF6IzqeZ98UicUM/GYMaV2ngFJ9hAbKH
> 8JgiphmNzKuN2rQzzvxrjCzxxkb6ayLzntaZjTF7+/Wi6FiWNO+TgJdpfIvq9l8J
> emQynyjGdxPZzfRXAgMBAAGjggGFMIIBgTAbBgNVHREEFDASgRB1ZmZfcmFAaW50
> ZXNhLml0MC8GCCsGAQUFBwEDBCMwITAIBgYEAI5GAQEwCwYGBACORgEDAgEUMAgG
> BgQAjkYBBDA/BgNVHSAEODA2MDQGBytMFQEBARQwKTAnBggrBgEFBQcCARYbaHR0
> cDovL2UtdHJ1c3Rjb20uaW50ZXNhLml0MA4GA1UdDwEB/wQEAwIGQDCBgwYDVR0j
> BHwweoAUGQkDltG4xVgbfhDkbsT2oBIJEKihXKRaMFgxCzAJBgNVBAYTAklUMRow
> GAYDVQQKExFJbi5UZS5TLkEuIFMucC5BLjEtMCsGA1UEAxMkSW4uVGUuUy5BLiAt
> IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ80QETMDsGA1UdHwQ0MDIwMKAuoCyG
> Kmh0dHA6Ly9lLXRydXN0Y29tLmludGVzYS5pdC9DUkwvSU5URVNBLmNybDAdBgNV
> HQ4EFgQUXG6de+FvzxE04M9RAkvmkTqxI+MwDQYJKoZIhvcNAQEFBQADggEBAABg
> H2zAAuQeEqfIimzEdDlvfmx2b0lE5q/3JQwhiGjuoJXyyyZ/gg14t9Yqlox+lYIe
> WJR6vlVRFSBsqW/3rADTzFday3Mfe0LLA3Tm2sAqJXEge4Kl6iMI9qT7Fdr4xBNz
> iUvyCx5WH12aht7oWubYtFZi9Qo8HEM1ECtV4yW3oi825JoaCcSWscOt7j+wqCgp
> K+qCuZUYAUB1vUcbdh+We+Dps2bfglGJA+uglDT5MiLEcI8k/pzVRPNsy+305aKr
> 9cZ42l45sm+k7G0BXO1rmEF3XYNqEiqXCvKGE0oqFoXClia4XlmY/0eICie4M6ve
> gkYRNjq17c1qh82qz44wggVKMIIEMqADAgECAgRGkjFRMA0GCSqGSIb3DQEBBQUA
> MF4xCzAJBgNVBAYTAml0MSAwHgYDVQQKExdCYW5jYSBkJ0l0YWxpYSBDb2xsYXVk
> bzEtMCsGA1UECxMkU2Vydml6aSBkaSBjZXJ0aWZpY2F6aW9uZSAtIENvbGxhdWRv
> MB4XDTA3MDkyNzEwMjgxOVoXDTEwMDkyNzEwNTgxOVowgYYxCzAJBgNVBAYTAmRl
> MRUwEwYDVQQKEwxub24gcHJlc2VudGUxYDAKBgNVBC4TAzMzMzANBgNVBCoTBlNB
> TkRSQTAPBgNVBAQTCFNURUhMSU5HMBYGA1UEAxMPU1RFSExJTkcgU0FORFJBMBoG
> A1UEBRMTREU6U1RIU0RSODFCNDlaMTEySzCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
> gYkCgYEAs1JENYmcDylCESe0x3QnWjhwfjw5xXbJUb+kE/2pTicFEBxBmBJ2J9Cj
> zC26L7XSWwFW9n+cjT7xoh1b5s8wvKAWx5VL5lwUGPm58G7yTr04wXSZ/4+NaXgX
> 9QDkWbwEZQqMMtAoZt1qP3Gubx8rljhvE2CrmUbhJOy+knyMjJkCAwEAAaOCAmkw
> ggJlMA4GA1UdDwEB/wQEAwIGQDArBgNVHRAEJDAigA8yMDA3MDkyNzEwMjgxOVqB
> DzIwMTAwOTI3MTA1ODE5WjAvBggrBgEFBQcBAwQjMCEwCAYGBACORgEBMAsGBgQA
> jkYBAwIBCjAIBgYEAI5GAQQwQQYDVR0gBDowODA2BgsrBgEEAetCAgACATAnMCUG
> CCsGAQUFBwIBFhlodHRwOi8vY2EuYmFuY2FkaXRhbGlhLml0MIIBcAYDVR0fBIIB
> ZzCCAWMwdaBzoHGkbzBtMQswCQYDVQQGEwJpdDEgMB4GA1UEChMXQmFuY2EgZCdJ
> dGFsaWEgQ29sbGF1ZG8xLTArBgNVBAsTJFNlcnZpemkgZGkgY2VydGlmaWNhemlv
> bmUgLSBDb2xsYXVkbzENMAsGA1UEAxMEQ1JMMjCB6aCB5qCB44aBoGxkYXA6Ly9s
> ZGFwLmNvbGxhdWRvLmNlcnRpZmljYXppb25lLmJhbmNhZGl0YWxpYS5pdC9vdT1T
> ZXJ2aXppJTIwZGklMjBjZXJ0aWZpY2F6aW9uZSUyMC0lMjBDb2xsYXVkbyxvPUJh
> bmNhJTIwZCdJdGFsaWElMjBDb2xsYXVkbyxjPWl0P2NlcnRpZmljYXRlUmV2b2Nh
> dGlvbkxpc3SGPmh0dHA6Ly93d3cuY29sbGF1ZG8uY2VydGlmaWNhemlvbmUuYmFu
> Y2FkaXRhbGlhLml0L2NybC9jcmwuY3JsMB8GA1UdIwQYMBaAFD9zrK5oOGrzLb6c
> pn+UzhOB+QMgMB0GA1UdDgQWBBR1wLbUx7cSPZzU6Yjje7asgrpn0DANBgkqhkiG
> 9w0BAQUFAAOCAQEAcBiHHatOcdX9WzNFWQ4DRzxzKBJQih/LocX8Rl1MJ7TrNu42
> Gk5smbcIqOKJJnROy7YgVSvtEQa6wqbzoE2MOqht35DxDaFwkvlMpiY/XdZadAvK
> hHoXZDk4xepQ3TtzKB2H4vYYdi0HiZk/E9rkdfWPU33sXT/r9JWa7g1v9bAZx/kn
> omthO9YImQvRw0OzhR9uMegO7hO1aTZkE6s3aCVA7YhR2iXEnTBXrhJVaAeykQDW
> Q7I0ZfnNb9j7AbvfcUWgtsLDW+F15tqOWpj8KOyYHgmumUEDcycM1Oso8rZIyamS
> yDps3W2HdOrRAz+hNhp8Tl1Rlt5p5sbawn1NvTCCBUowggQyoAMCAQICBEaSMVEw
> DQYJKoZIhvcNAQEFBQAwXjELMAkGA1UEBhMCaXQxIDAeBgNVBAoTF0JhbmNhIGQn
> SXRhbGlhIENvbGxhdWRvMS0wKwYDVQQLEyRTZXJ2aXppIGRpIGNlcnRpZmljYXpp
> b25lIC0gQ29sbGF1ZG8wHhcNMDcwOTI3MTAyODE5WhcNMTAwOTI3MTA1ODE5WjCB
> hjELMAkGA1UEBhMCZGUxFTATBgNVBAoTDG5vbiBwcmVzZW50ZTFgMAoGA1UELhMD
> MzMzMA0GA1UEKhMGU0FORFJBMA8GA1UEBBMIU1RFSExJTkcwFgYDVQQDEw9TVEVI
> TElORyBTQU5EUkEwGgYDVQQFExNERTpTVEhTRFI4MUI0OVoxMTJLMIGfMA0GCSqG
> SIb3DQEBAQUAA4GNADCBiQKBgQCzUkQ1iZwPKUIRJ7THdCdaOHB+PDnFdslRv6QT
> /alOJwUQHEGYEnYn0KPMLbovtdJbAVb2f5yNPvGiHVvmzzC8oBbHlUvmXBQY+bnw
> bvJOvTjBdJn/j41peBf1AORZvARlCowy0Chm3Wo/ca5vHyuWOG8TYKuZRuEk7L6S
> fIyMmQIDAQABo4ICaTCCAmUwDgYDVR0PAQH/BAQDAgZAMCsGA1UdEAQkMCKADzIw
> MDcwOTI3MTAyODE5WoEPMjAxMDA5MjcxMDU4MTlaMC8GCCsGAQUFBwEDBCMwITAI
> BgYEAI5GAQEwCwYGBACORgEDAgEKMAgGBgQAjkYBBDBBBgNVHSAEOjA4MDYGCysG
> AQQB60ICAAIBMCcwJQYIKwYBBQUHAgEWGWh0dHA6Ly9jYS5iYW5jYWRpdGFsaWEu
> aXQwggFwBgNVHR8EggFnMIIBYzB1oHOgcaRvMG0xCzAJBgNVBAYTAml0MSAwHgYD
> VQQKExdCYW5jYSBkJ0l0YWxpYSBDb2xsYXVkbzEtMCsGA1UECxMkU2Vydml6aSBk
> aSBjZXJ0aWZpY2F6aW9uZSAtIENvbGxhdWRvMQ0wCwYDVQQDEwRDUkwyMIHpoIHm
> oIHjhoGgbGRhcDovL2xkYXAuY29sbGF1ZG8uY2VydGlmaWNhemlvbmUuYmFuY2Fk
> aXRhbGlhLml0L291PVNlcnZpemklMjBkaSUyMGNlcnRpZmljYXppb25lJTIwLSUy
> MENvbGxhdWRvLG89QmFuY2ElMjBkJ0l0YWxpYSUyMENvbGxhdWRvLGM9aXQ/Y2Vy
> dGlmaWNhdGVSZXZvY2F0aW9uTGlzdIY+aHR0cDovL3d3dy5jb2xsYXVkby5jZXJ0
> aWZpY2F6aW9uZS5iYW5jYWRpdGFsaWEuaXQvY3JsL2NybC5jcmwwHwYDVR0jBBgw
> FoAUP3Osrmg4avMtvpymf5TOE4H5AyAwHQYDVR0OBBYEFHXAttTHtxI9nNTpiON7
> tqyCumfQMA0GCSqGSIb3DQEBBQUAA4IBAQBwGIcdq05x1f1bM0VZDgNHPHMoElCK
> H8uhxfxGXUwntOs27jYaTmyZtwio4okmdE7LtiBVK+0RBrrCpvOgTYw6qG3fkPEN
> oXCS+UymJj9d1lp0C8qEehdkOTjF6lDdO3MoHYfi9hh2LQeJmT8T2uR19Y9Tfexd
> P+v0lZruDW/1sBnH+Seia2E71giZC9HDQ7OFH24x6A7uE7VpNmQTqzdoJUDtiFHa
> JcSdMFeuElVoB7KRANZDsjRl+c1v2PsBu99xRaC2wsNb4XXm2o5amPwo7JgeCa6Z
> QQNzJwzU6yjytkjJqZLIOmzdbYd06tEDP6E2GnxOXVGW3mnmxtrCfU29MIIE+TCC
> A+GgAwIBAgIEQ51TGTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJJVDEaMBgG
> A1UEChMRSW4uVGUuUy5BLiBTLnAuQS4xLTArBgNVBAMTJEluLlRlLlMuQS4gLSBD
> ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNzAxMTcxNDAxMDFaFw0wODAxMTcx
> NDAxMDFaMIIBHjELMAkGA1UEBhMCSVQxVzBVBgNVBAoMTklOLlRFLlMuQS4gLSBJ
> bml6aWF0aXZlIFRlbGVtYXRpY2hlIHBlciBTZXJ2aXppIEFwcGxpY2F0aXZpIFMu
> cC5BLi8wNTI2Mjg5MDAxNDEPMA0GA1UEBwwGTUlMQU5PMREwDwYDVQQLDAhERUxJ
> VkVSWTEfMB0GA1UECwwWRUJJIFNPTFVUSU9OICYgU1VQUE9SVDEaMBgGA1UEAwwR
> Uk9CRVJUIEJFVFRBw6dTQ0kxEzARBgNVBAQMCkJFVFRBw6dTQ0kxDzANBgNVBCoM
> BlJPQkVSVDEcMBoGA1UEBRMTSVQ6VFJQRlJVNzZBMDNaMTE0TTERMA8GA1UELhMI
> MDAwMDI2NjcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM3kx9UFiChtOXe1
> kCHOqxJiZ1Whs9zzMfMowRuYGFkx22hmasSKivNolrWlfF6IzqeZ98UicUM/GYMa
> V2ngFJ9hAbKH8JgiphmNzKuN2rQzzvxrjCzxxkb6ayLzntaZjTF7+/Wi6FiWNO+T
> gJdpfIvq9l8JemQynyjGdxPZzfRXAgMBAAGjggGFMIIBgTAbBgNVHREEFDASgRB1
> ZmZfcmFAaW50ZXNhLml0MC8GCCsGAQUFBwEDBCMwITAIBgYEAI5GAQEwCwYGBACO
> RgEDAgEUMAgGBgQAjkYBBDA/BgNVHSAEODA2MDQGBytMFQEBARQwKTAnBggrBgEF
> BQcCARYbaHR0cDovL2UtdHJ1c3Rjb20uaW50ZXNhLml0MA4GA1UdDwEB/wQEAwIG
> QDCBgwYDVR0jBHwweoAUGQkDltG4xVgbfhDkbsT2oBIJEKihXKRaMFgxCzAJBgNV
> BAYTAklUMRowGAYDVQQKExFJbi5UZS5TLkEuIFMucC5BLjEtMCsGA1UEAxMkSW4u
> VGUuUy5BLiAtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ80QETMDsGA1UdHwQ0
> MDIwMKAuoCyGKmh0dHA6Ly9lLXRydXN0Y29tLmludGVzYS5pdC9DUkwvSU5URVNB
> LmNybDAdBgNVHQ4EFgQUXG6de+FvzxE04M9RAkvmkTqxI+MwDQYJKoZIhvcNAQEF
> BQADggEBAABgH2zAAuQeEqfIimzEdDlvfmx2b0lE5q/3JQwhiGjuoJXyyyZ/gg14
> t9Yqlox+lYIeWJR6vlVRFSBsqW/3rADTzFday3Mfe0LLA3Tm2sAqJXEge4Kl6iMI
> 9qT7Fdr4xBNziUvyCx5WH12aht7oWubYtFZi9Qo8HEM1ECtV4yW3oi825JoaCcSW
> scOt7j+wqCgpK+qCuZUYAUB1vUcbdh+We+Dps2bfglGJA+uglDT5MiLEcI8k/pzV
> RPNsy+305aKr9cZ42l45sm+k7G0BXO1rmEF3XYNqEiqXCvKGE0oqFoXClia4XlmY
> /0eICie4M6vegkYRNjq17c1qh82qz44wggT5MIID4aADAgECAgRDnVMZMA0GCSqG
> SIb3DQEBBQUAMFgxCzAJBgNVBAYTAklUMRowGAYDVQQKExFJbi5UZS5TLkEuIFMu
> cC5BLjEtMCsGA1UEAxMkSW4uVGUuUy5BLiAtIENlcnRpZmljYXRpb24gQXV0aG9y
> aXR5MB4XDTA3MDExNzE0MDEwMVoXDTA4MDExNzE0MDEwMVowggEeMQswCQYDVQQG
> EwJJVDFXMFUGA1UECgxOSU4uVEUuUy5BLiAtIEluaXppYXRpdmUgVGVsZW1hdGlj
> aGUgcGVyIFNlcnZpemkgQXBwbGljYXRpdmkgUy5wLkEuLzA1MjYyODkwMDE0MQ8w
> DQYDVQQHDAZNSUxBTk8xETAPBgNVBAsMCERFTElWRVJZMR8wHQYDVQQLDBZFQkkg
> U09MVVRJT04gJiBTVVBQT1JUMRowGAYDVQQDDBFST0JFUlQgQkVUVEHDp1NDSTET
> MBEGA1UEBAwKQkVUVEHDp1NDSTEPMA0GA1UEKgwGUk9CRVJUMRwwGgYDVQQFExNJ
> VDpUUlBGUlU3NkEwM1oxMTRNMREwDwYDVQQuEwgwMDAwMjY2NzCBnzANBgkqhkiG
> 9w0BAQEFAAOBjQAwgYkCgYEAzeTH1QWIKG05d7WQIc6rEmJnVaGz3PMx8yjBG5gY
> WTHbaGZqxIqK82iWtaV8XojOp5n3xSJxQz8ZgxpXaeAUn2EBsofwmCKmGY3Mq43a
> tDPO/GuMLPHGRvprIvOe1pmNMXv79aLoWJY075OAl2l8i+r2Xwl6ZDKfKMZ3E9nN
> 9FcCAwEAAaOCAYUwggGBMBsGA1UdEQQUMBKBEHVmZl9yYUBpbnRlc2EuaXQwLwYI
> KwYBBQUHAQMEIzAhMAgGBgQAjkYBATALBgYEAI5GAQMCARQwCAYGBACORgEEMD8G
> A1UdIAQ4MDYwNAYHK0wVAQEBFDApMCcGCCsGAQUFBwIBFhtodHRwOi8vZS10cnVz
> dGNvbS5pbnRlc2EuaXQwDgYDVR0PAQH/BAQDAgZAMIGDBgNVHSMEfDB6gBQZCQOW
> 0bjFWBt+EORuxPagEgkQqKFcpFowWDELMAkGA1UEBhMCSVQxGjAYBgNVBAoTEUlu
> LlRlLlMuQS4gUy5wLkEuMS0wKwYDVQQDEyRJbi5UZS5TLkEuIC0gQ2VydGlmaWNh
> dGlvbiBBdXRob3JpdHmCBDzRARMwOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL2Ut
> dHJ1c3Rjb20uaW50ZXNhLml0L0NSTC9JTlRFU0EuY3JsMB0GA1UdDgQWBBRcbp17
> 4W/PETTgz1ECS+aROrEj4zANBgkqhkiG9w0BAQUFAAOCAQEAAGAfbMAC5B4Sp8iK
> bMR0OW9+bHZvSUTmr/clDCGIaO6glfLLJn+CDXi31iqWjH6Vgh5YlHq+VVEVIGyp
> b/esANPMV1rLcx97QssDdObawColcSB7gqXqIwj2pPsV2vjEE3OJS/ILHlYfXZqG
> 3uha5ti0VmL1CjwcQzUQK1XjJbeiLzbkmhoJxJaxw63uP7CoKCkr6oK5lRgBQHW9
> Rxt2H5Z74OmzZt+CUYkD66CUNPkyIsRwjyT+nNVE82zL7fTloqv1xnjaXjmyb6Ts
> bQFc7WuYQXddg2oSKpcK8oYTSioWhcKWJrheWZj/R4gKJ7gzq96CRhE2OrXtzWqH
> zarPjjGCBgwwggIlAgEBMGYwXjELMAkGA1UEBhMCaXQxIDAeBgNVBAoTF0JhbmNh
> IGQnSXRhbGlhIENvbGxhdWRvMS0wKwYDVQQLEyRTZXJ2aXppIGRpIGNlcnRpZmlj
> YXppb25lIC0gQ29sbGF1ZG8CBEaSMVEwCQYFKw4DAhoFADANBgkqhkiG9w0BAQEF
> AASBgAWhDDjZgmDwtTcRf/ZJ0NUdh88t2ahDdiX8CjTUe9FdxeEUt0yswbxDm8mh
> Vh5XcM/UMQs3JORKelPguVcMP3qReC1NxWaLTiaf+22+32oppNXNUj2OH8sFmEew
> SNFIxIPs/d0m/7EuJGGu5KVNCqQZzgbRysFyP+HFWIgTYLa1oYIBGTCCARUGCSqG
> SIb3DQEJBjGCAQYwggECAgEBMGAwWDELMAkGA1UEBhMCSVQxGjAYBgNVBAoTEUlu
> LlRlLlMuQS4gUy5wLkEuMS0wKwYDVQQDEyRJbi5UZS5TLkEuIC0gQ2VydGlmaWNh
> dGlvbiBBdXRob3JpdHkCBEOdUxkwCQYFKw4DAhoFADANBgkqhkiG9w0BAQEFAASB
> gGevokdlti/6Dz62GwAE2tXjzXooE18MRe1C0nIM5yTtKPMsQFbpnF0OlVTgBfo7
> hntKEYFxjTx4iGtrrGE9pGLajEbOJCop86moYbGQis+QImNVBTicjcJA9azSLMm5
> uOKH6wXEN3ZKpxLdwGe+Bq/s2oczkw4j71qsEEytNRuqMIID3wIBATBgMFgxCzAJ
> BgNVBAYTAklUMRowGAYDVQQKExFJbi5UZS5TLkEuIFMucC5BLjEtMCsGA1UEAxMk
> SW4uVGUuUy5BLiAtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5AgRDnVMZMAkGBSsO
> AwIaBQCggbEwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUx
> DxcNMDcxMjA1MTYyNDU1WjAjBgkqhkiG9w0BCQQxFgQUG6R3BCizMuRiiBkoN3+f
> WGKa+PIwUgYJKoZIhvcNAQkPMUUwQzAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgIC
> AIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwDQYJKoZI
> hvcNAQEBBQAEgYCbUAkRGIg78gpvqdmj5i5OWac/EnXdlddIjJ/lpgunpSDJeDLk
> 8yELY3jwOlek+YgJhjjUyqII43r6xpbjjbQ+BpIdvYyPC/1JBxyxlli8ghnCMfG4
> 9TxDX65mt0cYb5Ai5ebhYSMFbflnedg7wWtdYkyzL4HCAhok9HKGfM/XbqGCAiUw
> ggIhBgkqhkiG9w0BCQYxggISMIIBAgIBATBgMFgxCzAJBgNVBAYTAklUMRowGAYD
> VQQKExFJbi5UZS5TLkEuIFMucC5BLjEtMCsGA1UEAxMkSW4uVGUuUy5BLiAtIENl
> cnRpZmljYXRpb24gQXV0aG9yaXR5AgRDnVMZMAkGBSsOAwIaBQAwDQYJKoZIhvcN
> AQEBBQAEgYB0ClpuofnHs1ULju0cyusUmun/iBfneC7fay3fWJtshlj31ZBMXn+j
> W7hbpGv4vxS6PjFe3WRAbP5dSyjyM3f6fcOzM/s83maSDKs6255hyif6dN4y+fYS
> Sv5Z7oertsW7BZiF4XXmQ144JdWL0t0c5YoqLy4vt5FUodoC96RpiTCCAQgCAQEw
> ZjBeMQswCQYDVQQGEwJpdDEgMB4GA1UEChMXQmFuY2EgZCdJdGFsaWEgQ29sbGF1
> ZG8xLTArBgNVBAsTJFNlcnZpemkgZGkgY2VydGlmaWNhemlvbmUgLSBDb2xsYXVk
> bwIERpIxUTAJBgUrDgMCGgUAMA0GCSqGSIb3DQEBAQUABIGAFDLOeCLO00Rd0K/k
> 2lwWwmJCaAcCfTD3oCt/1IdXRIQB4HuTT0JmgKsov/jtnjNGFUZYEeM2fVYv+JC4
> rQtHuhJm545iRhKI8WPb0qB3rsCHE/ulKi/uz/ael+l6cgr3F9oU3vlNrs+L8ocv
> PMahH8kXFsqJJlTBkyeUWneR39A=
> -----END PKCS7-----
>
>
>