Статус: Новичок
Группы: Участники
Зарегистрирован: 15.06.2016(UTC) Сообщений: 6
Поблагодарили: 1 раз в 1 постах
|
Добрый день. Подписываю электронное письмо при помощи примера CMS_samples: Код:
From: office@akibank.ru
To: svs@akibank.ru
Message-ID: <356128.3.1466399461625@nch-xp-svs>
Subject: Test mail
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pkcs7-signature";
boundary="----=_Part_2_12037167.1466399461625"
------=_Part_2_12037167.1466399461625
Content-Type: multipart/mixed;
boundary="----=_Part_0_30045997.1466399459982"
------=_Part_0_30045997.1466399459982
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Test message
------=_Part_0_30045997.1466399459982--
------=_Part_2_12037167.1466399461625
Content-Type: application/pkcs7-signature; name=smime.p7s; smime-type=signed-data
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature
MIIMBwYJKoZIhvcNAQcCoIIL+DCCC/QCAQExDDAKBgYqhQMCAgkFADCCARQGCSqGSIb3DQEHAaCC
AQUEggEBQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IA0KCWJvdW5kYXJ5PSItLS0tPV9Q
YXJ0XzBfMzAwNDU5OTcuMTQ2NjM5OTQ1OTk4MiINCg0KLS0tLS0tPV9QYXJ0XzBfMzAwNDU5OTcu
MTQ2NjM5OTQ1OTk4Mg0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lp
DQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0DQoNClRlc3QgbWVzc2FnZQ0KLS0tLS0t
PV9QYXJ0XzBfMzAwNDU5OTcuMTQ2NjM5OTQ1OTk4Mi0tDQqgggkDMIII/zCCCK6gAwIBAgIKd9wa
HAAFAAJs7TAIBgYqhQMCAgMwggFLMRgwFgYFKoUDZAESDTEwMjE2MDI4NTUyNjIxGjAYBggqhQMD
gQMBARIMMDAxNjU1MDQ1NDA2MSYwJAYDVQQJDB3Rg9C7LiDQmi4g0J3QsNGB0YvRgNC4INC0LiAy
ODEbMBkGCSqGSIb3DQEJARYMY2FAdGF4bmV0LnJ1MQswCQYDVQQGEwJSVTEzMDEGA1UECAwqMTYg
0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KLQsNGC0LDRgNGB0YLQsNC9MRUwEwYDVQQHDAzQmtCw0LfQ
sNC90YwxHjAcBgNVBAoMFdCX0JDQniDQotCw0LrRgdCd0LXRgjEwMC4GA1UECwwn0KPQtNC+0YHR
gtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAMSMwIQYDVQQDDBrQo9CmINCX0JDQniDQotCw
0LrRgdCd0LXRgjAeFw0xNjA1MTYxMzQ4MDBaFw0xNzA1MTYxMzQ5MDBaMIIBQDEYMBYGBSqFA2QB
Eg0xMDIxNjAwMDAwODM5MRowGAYIKoUDA4EDAQESDDAwMTY1MDAwMjQ1NTEgMB4GCSqGSIb3DQEJ
ARYRb2ZmaWNlQGFraWJhbmsucnUxCzAJBgNVBAYTAlJVMTcwNQYDVQQIHi4AMQA2ACAEIAQ1BEEE
PwRDBDEEOwQ4BDoEMAAgBCIEMARCBDAEQARBBEIEMAQ9MSkwJwYDVQQHHiAEHQQwBDEENQRABDUE
NgQ9BEsENQAgBCcENQQ7BD0ESzEjMCEGA1UECh4aBB8EEAQeACAAqwQQBBoEGAQRBBAEHQQaALsx
IzAhBgNVBAMeGgQfBBAEHgAgAKsEEAQaBBgEEQQQBB0EGgC7MSswKQYDVQQJHiIEPwRAAC0EOgRC
ACAEHAQ4BEAEMAAgBDQALgAgADgAOAQwMGMwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgED
QwAEQNKUmLTVi+RgIevtQZppbjXVVk06p9qgsp6y3VENTWnFogEySuv8zOwObMaTBiHJclZjziHi
VTDeHLw9cvpQlN6jggV3MIIFczAOBgNVHQ8BAf8EBAMCBPAwJgYDVR0lBB8wHQYHKoUDAgIiBgYI
KwYBBQUHAwIGCCsGAQUFBwMEMB0GA1UdIAQWMBQwCAYGKoUDZHEBMAgGBiqFA2RxAjAdBgNVHQ4E
FgQUB/I8Owwm2tKiK4jlhQvsMh7lRaswggGMBgNVHSMEggGDMIIBf4AUJpvXPIPlsOVstHWHPlWp
XLW7XIehggFTpIIBTzCCAUsxGDAWBgUqhQNkARINMTAyMTYwMjg1NTI2MjEaMBgGCCqFAwOBAwEB
EgwwMDE2NTUwNDU0MDYxJjAkBgNVBAkMHdGD0LsuINCaLiDQndCw0YHRi9GA0Lgg0LQuIDI4MRsw
GQYJKoZIhvcNAQkBFgxjYUB0YXhuZXQucnUxCzAJBgNVBAYTAlJVMTMwMQYDVQQIDCoxNiDQoNC1
0YHQv9GD0LHQu9C40LrQsCDQotCw0YLQsNGA0YHRgtCw0L0xFTATBgNVBAcMDNCa0LDQt9Cw0L3R
jDEeMBwGA1UECgwV0JfQkNCeINCi0LDQutGB0J3QtdGCMTAwLgYDVQQLDCfQo9C00L7RgdGC0L7Q
stC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAxIzAhBgNVBAMMGtCj0KYg0JfQkNCeINCi0LDQutGB
0J3QtdGCghBYNI0EVKbUuUsu9vPARRbBMIGqBgNVHR8EgaIwgZ8wTaBLoEmGR2h0dHA6Ly9jYS50
YXhuZXQucnUvcmEvY2RwLzI2OWJkNzNjODNlNWIwZTU2Y2I0NzU4NzNlNTVhOTVjYjViYjVjODcu
Y3JsME6gTKBKhkhodHRwOi8vY2EyLnRheG5ldC5ydS9yYS9jZHAvMjY5YmQ3M2M4M2U1YjBlNTZj
YjQ3NTg3M2U1NWE5NWNiNWJiNWM4Ny5jcmwwggEgBggrBgEFBQcBAQSCARIwggEOMC8GCCsGAQUF
BzABhiNodHRwOi8vb2NzcC50YXhuZXQucnUvb2NzcC9vY3NwLnNyZjAwBggrBgEFBQcwAYYkaHR0
cDovL29jc3AyLnRheG5ldC5ydS9vY3NwL29jc3Auc3JmMFMGCCsGAQUFBzAChkdodHRwOi8vY2Eu
dGF4bmV0LnJ1L3JhL2NkcC8yNjliZDczYzgzZTViMGU1NmNiNDc1ODczZTU1YTk1Y2I1YmI1Yzg3
LmNlcjBUBggrBgEFBQcwAoZIaHR0cDovL2NhMi50YXhuZXQucnUvcmEvY2RwLzI2OWJkNzNjODNl
NWIwZTU2Y2I0NzU4NzNlNTVhOTVjYjViYjVjODcuY2VyMDYGBSqFA2RvBC0MKyLQmtGA0LjQv9GC
0L7Qn9GA0L4gQ1NQIiAo0LLQtdGA0YHQuNGPIDMuNikwKwYDVR0QBCQwIoAPMjAxNjA1MTYxMzQ4
MDBagQ8yMDE3MDUxNjEzNDgwMFowggEzBgUqhQNkcASCASgwggEkDCsi0JrRgNC40L/RgtC+0J/R
gNC+IENTUCIgKNCy0LXRgNGB0LjRjyAzLjYpDFMi0KPQtNC+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQ
uSDRhtC10L3RgtGAICLQmtGA0LjQv9GC0L7Qn9GA0L4g0KPQpiIg0LLQtdGA0YHQuNC4IDEuNQxP
0KHQtdGA0YLQuNGE0LjQutCw0YIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNGPIOKEliDQodCkLzEy
NC0yNzM4INC+0YIgMDEuMDcuMjAxNQxP0KHQtdGA0YLQuNGE0LjQutCw0YIg0YHQvtC+0YLQstC1
0YLRgdGC0LLQuNGPIOKEliDQodCkLzEyOC0yNzY4INC+0YIgMzEuMTIuMjAxNTAIBgYqhQMCAgMD
QQAnLRf45CKioMrs69QIvHXz5ZZR54V559Ma2GzJGFaBQ2R2pzkkSBY5Ne9w8sEsHxqV2aB4XbhW
meP4gdQLs9owMYIBwDCCAbwCAQEwggFbMIIBSzEYMBYGBSqFA2QBEg0xMDIxNjAyODU1MjYyMRow
GAYIKoUDA4EDAQESDDAwMTY1NTA0NTQwNjEmMCQGA1UECQwd0YPQuy4g0JouINCd0LDRgdGL0YDQ
uCDQtC4gMjgxGzAZBgkqhkiG9w0BCQEWDGNhQHRheG5ldC5ydTELMAkGA1UEBhMCUlUxMzAxBgNV
BAgMKjE2INCg0LXRgdC/0YPQsdC70LjQutCwINCi0LDRgtCw0YDRgdGC0LDQvTEVMBMGA1UEBwwM
0JrQsNC30LDQvdGMMR4wHAYDVQQKDBXQl9CQ0J4g0KLQsNC60YHQndC10YIxMDAuBgNVBAsMJ9Cj
0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDEjMCEGA1UEAwwa0KPQpiDQl9CQ
0J4g0KLQsNC60YHQndC10YICCnfcGhwABQACbO0wCgYGKoUDAgIJBQAwCgYGKoUDAgITBQAEQHvJ
wn262bICcOJSGbvkoCRUEUye8w0R/JhYJklhtN6knY+38cCfh2NFJ6auggJKaz99+TlB90Lk5OB3
w5DbL5E=
------=_Part_2_12037167.1466399461625--
Подписываемое сообщение: Код:
Content-Type: multipart/mixed;
boundary="----=_Part_0_30045997.1466399459982"
------=_Part_0_30045997.1466399459982
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Test message
------=_Part_0_30045997.1466399459982--
Сервис проверки http://dss.cryptopro.ru/Verify/Verify/, так же как и КриптоАРМ, подпись видит и сообщение открепляет, однако Outlook выдает ошибку, что "Содержимое сообщения могло быть изменено". Пробовал варианты и с прикрепленной и с отсоединенной подписью. Очень прошу помощи в решении проблемы.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.06.2016(UTC) Сообщений: 6
Поблагодарили: 1 раз в 1 постах
|
upd. Подписываю открепленной подписью сообщение только с текстом: Код:Content-Type: multipart/mixed;
boundary="----=_Part_0_30045997.1466415921701"
------=_Part_0_30045997.1466415921701
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Test message
------=_Part_0_30045997.1466415921701--
Получается письмо, которое прекрасно принимается Outlook: Код:From: svs@akibank.ru
To: svs@akibank.ru
Message-ID: <27397991.3.1466415923483@nch-xp-svs>
Subject: Test mail
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pkcs7-signature";
boundary="----=_Part_2_6811689.1466415923483"
------=_Part_2_6811689.1466415923483
Content-Type: multipart/mixed;
boundary="----=_Part_0_30045997.1466415921701"
------=_Part_0_30045997.1466415921701
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Test message
------=_Part_0_30045997.1466415921701--
------=_Part_2_6811689.1466415923483
Content-Type: application/pkcs7-signature; name=smime.p7s; smime-type=signed-data
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature
MIIK/AYJKoZIhvcNAQcCoIIK7TCCCukCAQExDDAKBgYqhQMCAgkFADALBgkqhkiG9w0BBwGgggkD
MIII/zCCCK6gAwIBAgIKd9waHAAFAAJs7TAIBgYqhQMCAgMwggFLMRgwFgYFKoUDZAESDTEwMjE2
MDI4NTUyNjIxGjAYBggqhQMDgQMBARIMMDAxNjU1MDQ1NDA2MSYwJAYDVQQJDB3Rg9C7LiDQmi4g
0J3QsNGB0YvRgNC4INC0LiAyODEbMBkGCSqGSIb3DQEJARYMY2FAdGF4bmV0LnJ1MQswCQYDVQQG
EwJSVTEzMDEGA1UECAwqMTYg0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KLQsNGC0LDRgNGB0YLQsNC9
MRUwEwYDVQQHDAzQmtCw0LfQsNC90YwxHjAcBgNVBAoMFdCX0JDQniDQotCw0LrRgdCd0LXRgjEw
MC4GA1UECwwn0KPQtNC+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAMSMwIQYDVQQD
DBrQo9CmINCX0JDQniDQotCw0LrRgdCd0LXRgjAeFw0xNjA1MTYxMzQ4MDBaFw0xNzA1MTYxMzQ5
MDBaMIIBQDEYMBYGBSqFA2QBEg0xMDIxNjAwMDAwODM5MRowGAYIKoUDA4EDAQESDDAwMTY1MDAw
MjQ1NTEgMB4GCSqGSIb3DQEJARYRb2ZmaWNlQGFraWJhbmsucnUxCzAJBgNVBAYTAlJVMTcwNQYD
VQQIHi4AMQA2ACAEIAQ1BEEEPwRDBDEEOwQ4BDoEMAAgBCIEMARCBDAEQARBBEIEMAQ9MSkwJwYD
VQQHHiAEHQQwBDEENQRABDUENgQ9BEsENQAgBCcENQQ7BD0ESzEjMCEGA1UECh4aBB8EEAQeACAA
qwQQBBoEGAQRBBAEHQQaALsxIzAhBgNVBAMeGgQfBBAEHgAgAKsEEAQaBBgEEQQQBB0EGgC7MSsw
KQYDVQQJHiIEPwRAAC0EOgRCACAEHAQ4BEAEMAAgBDQALgAgADgAOAQwMGMwHAYGKoUDAgITMBIG
ByqFAwICJAAGByqFAwICHgEDQwAEQNKUmLTVi+RgIevtQZppbjXVVk06p9qgsp6y3VENTWnFogEy
Suv8zOwObMaTBiHJclZjziHiVTDeHLw9cvpQlN6jggV3MIIFczAOBgNVHQ8BAf8EBAMCBPAwJgYD
VR0lBB8wHQYHKoUDAgIiBgYIKwYBBQUHAwIGCCsGAQUFBwMEMB0GA1UdIAQWMBQwCAYGKoUDZHEB
MAgGBiqFA2RxAjAdBgNVHQ4EFgQUB/I8Owwm2tKiK4jlhQvsMh7lRaswggGMBgNVHSMEggGDMIIB
f4AUJpvXPIPlsOVstHWHPlWpXLW7XIehggFTpIIBTzCCAUsxGDAWBgUqhQNkARINMTAyMTYwMjg1
NTI2MjEaMBgGCCqFAwOBAwEBEgwwMDE2NTUwNDU0MDYxJjAkBgNVBAkMHdGD0LsuINCaLiDQndCw
0YHRi9GA0Lgg0LQuIDI4MRswGQYJKoZIhvcNAQkBFgxjYUB0YXhuZXQucnUxCzAJBgNVBAYTAlJV
MTMwMQYDVQQIDCoxNiDQoNC10YHQv9GD0LHQu9C40LrQsCDQotCw0YLQsNGA0YHRgtCw0L0xFTAT
BgNVBAcMDNCa0LDQt9Cw0L3RjDEeMBwGA1UECgwV0JfQkNCeINCi0LDQutGB0J3QtdGCMTAwLgYD
VQQLDCfQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAxIzAhBgNVBAMMGtCj
0KYg0JfQkNCeINCi0LDQutGB0J3QtdGCghBYNI0EVKbUuUsu9vPARRbBMIGqBgNVHR8EgaIwgZ8w
TaBLoEmGR2h0dHA6Ly9jYS50YXhuZXQucnUvcmEvY2RwLzI2OWJkNzNjODNlNWIwZTU2Y2I0NzU4
NzNlNTVhOTVjYjViYjVjODcuY3JsME6gTKBKhkhodHRwOi8vY2EyLnRheG5ldC5ydS9yYS9jZHAv
MjY5YmQ3M2M4M2U1YjBlNTZjYjQ3NTg3M2U1NWE5NWNiNWJiNWM4Ny5jcmwwggEgBggrBgEFBQcB
AQSCARIwggEOMC8GCCsGAQUFBzABhiNodHRwOi8vb2NzcC50YXhuZXQucnUvb2NzcC9vY3NwLnNy
ZjAwBggrBgEFBQcwAYYkaHR0cDovL29jc3AyLnRheG5ldC5ydS9vY3NwL29jc3Auc3JmMFMGCCsG
AQUFBzAChkdodHRwOi8vY2EudGF4bmV0LnJ1L3JhL2NkcC8yNjliZDczYzgzZTViMGU1NmNiNDc1
ODczZTU1YTk1Y2I1YmI1Yzg3LmNlcjBUBggrBgEFBQcwAoZIaHR0cDovL2NhMi50YXhuZXQucnUv
cmEvY2RwLzI2OWJkNzNjODNlNWIwZTU2Y2I0NzU4NzNlNTVhOTVjYjViYjVjODcuY2VyMDYGBSqF
A2RvBC0MKyLQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQIiAo0LLQtdGA0YHQuNGPIDMuNikwKwYDVR0Q
BCQwIoAPMjAxNjA1MTYxMzQ4MDBagQ8yMDE3MDUxNjEzNDgwMFowggEzBgUqhQNkcASCASgwggEk
DCsi0JrRgNC40L/RgtC+0J/RgNC+IENTUCIgKNCy0LXRgNGB0LjRjyAzLjYpDFMi0KPQtNC+0YHR
gtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAICLQmtGA0LjQv9GC0L7Qn9GA0L4g0KPQpiIg
0LLQtdGA0YHQuNC4IDEuNQxP0KHQtdGA0YLQuNGE0LjQutCw0YIg0YHQvtC+0YLQstC10YLRgdGC
0LLQuNGPIOKEliDQodCkLzEyNC0yNzM4INC+0YIgMDEuMDcuMjAxNQxP0KHQtdGA0YLQuNGE0LjQ
utCw0YIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNGPIOKEliDQodCkLzEyOC0yNzY4INC+0YIgMzEu
MTIuMjAxNTAIBgYqhQMCAgMDQQAnLRf45CKioMrs69QIvHXz5ZZR54V559Ma2GzJGFaBQ2R2pzkk
SBY5Ne9w8sEsHxqV2aB4XbhWmeP4gdQLs9owMYIBwDCCAbwCAQEwggFbMIIBSzEYMBYGBSqFA2QB
Eg0xMDIxNjAyODU1MjYyMRowGAYIKoUDA4EDAQESDDAwMTY1NTA0NTQwNjEmMCQGA1UECQwd0YPQ
uy4g0JouINCd0LDRgdGL0YDQuCDQtC4gMjgxGzAZBgkqhkiG9w0BCQEWDGNhQHRheG5ldC5ydTEL
MAkGA1UEBhMCUlUxMzAxBgNVBAgMKjE2INCg0LXRgdC/0YPQsdC70LjQutCwINCi0LDRgtCw0YDR
gdGC0LDQvTEVMBMGA1UEBwwM0JrQsNC30LDQvdGMMR4wHAYDVQQKDBXQl9CQ0J4g0KLQsNC60YHQ
ndC10YIxMDAuBgNVBAsMJ9Cj0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDEj
MCEGA1UEAwwa0KPQpiDQl9CQ0J4g0KLQsNC60YHQndC10YICCnfcGhwABQACbO0wCgYGKoUDAgIJ
BQAwCgYGKoUDAgITBQAEQFAg/C5fAaLqnPcnwg/sfpR1d3ZA8Bv+cyK5YCJAw+77rsez5dKKbjDQ
ygroH1Iu1BQW7VhD3KGvJQxIff9T5vE=
------=_Part_2_6811689.1466415923483--
Но стоит добавить в письмо файл: Код:Content-Type: multipart/mixed;
boundary="----=_Part_0_30045997.1466416051769"
------=_Part_0_30045997.1466416051769
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Test message
------=_Part_0_30045997.1466416051769
Content-Type: text/plain; charset=us-ascii; name=file.txt
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=file.txt
111
------=_Part_0_30045997.1466416051769--
Получается письмо, на которое Outlook ругается: Код:From: svs@akibank.ru
To: svs@akibank.ru
Message-ID: <31693939.3.1466416053488@nch-xp-svs>
Subject: Test mail
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pkcs7-signature";
boundary="----=_Part_2_10277809.1466416053488"
------=_Part_2_10277809.1466416053488
Content-Type: multipart/mixed;
boundary="----=_Part_0_30045997.1466416051769"
------=_Part_0_30045997.1466416051769
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Test message
------=_Part_0_30045997.1466416051769
Content-Type: text/plain; charset=us-ascii; name=file.txt
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=file.txt
111
------=_Part_0_30045997.1466416051769--
------=_Part_2_10277809.1466416053488
Content-Type: application/pkcs7-signature; name=smime.p7s; smime-type=signed-data
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature
MIIK/AYJKoZIhvcNAQcCoIIK7TCCCukCAQExDDAKBgYqhQMCAgkFADALBgkqhkiG9w0BBwGgggkD
MIII/zCCCK6gAwIBAgIKd9waHAAFAAJs7TAIBgYqhQMCAgMwggFLMRgwFgYFKoUDZAESDTEwMjE2
MDI4NTUyNjIxGjAYBggqhQMDgQMBARIMMDAxNjU1MDQ1NDA2MSYwJAYDVQQJDB3Rg9C7LiDQmi4g
0J3QsNGB0YvRgNC4INC0LiAyODEbMBkGCSqGSIb3DQEJARYMY2FAdGF4bmV0LnJ1MQswCQYDVQQG
EwJSVTEzMDEGA1UECAwqMTYg0KDQtdGB0L/Rg9Cx0LvQuNC60LAg0KLQsNGC0LDRgNGB0YLQsNC9
MRUwEwYDVQQHDAzQmtCw0LfQsNC90YwxHjAcBgNVBAoMFdCX0JDQniDQotCw0LrRgdCd0LXRgjEw
MC4GA1UECwwn0KPQtNC+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAMSMwIQYDVQQD
DBrQo9CmINCX0JDQniDQotCw0LrRgdCd0LXRgjAeFw0xNjA1MTYxMzQ4MDBaFw0xNzA1MTYxMzQ5
MDBaMIIBQDEYMBYGBSqFA2QBEg0xMDIxNjAwMDAwODM5MRowGAYIKoUDA4EDAQESDDAwMTY1MDAw
MjQ1NTEgMB4GCSqGSIb3DQEJARYRb2ZmaWNlQGFraWJhbmsucnUxCzAJBgNVBAYTAlJVMTcwNQYD
VQQIHi4AMQA2ACAEIAQ1BEEEPwRDBDEEOwQ4BDoEMAAgBCIEMARCBDAEQARBBEIEMAQ9MSkwJwYD
VQQHHiAEHQQwBDEENQRABDUENgQ9BEsENQAgBCcENQQ7BD0ESzEjMCEGA1UECh4aBB8EEAQeACAA
qwQQBBoEGAQRBBAEHQQaALsxIzAhBgNVBAMeGgQfBBAEHgAgAKsEEAQaBBgEEQQQBB0EGgC7MSsw
KQYDVQQJHiIEPwRAAC0EOgRCACAEHAQ4BEAEMAAgBDQALgAgADgAOAQwMGMwHAYGKoUDAgITMBIG
ByqFAwICJAAGByqFAwICHgEDQwAEQNKUmLTVi+RgIevtQZppbjXVVk06p9qgsp6y3VENTWnFogEy
Suv8zOwObMaTBiHJclZjziHiVTDeHLw9cvpQlN6jggV3MIIFczAOBgNVHQ8BAf8EBAMCBPAwJgYD
VR0lBB8wHQYHKoUDAgIiBgYIKwYBBQUHAwIGCCsGAQUFBwMEMB0GA1UdIAQWMBQwCAYGKoUDZHEB
MAgGBiqFA2RxAjAdBgNVHQ4EFgQUB/I8Owwm2tKiK4jlhQvsMh7lRaswggGMBgNVHSMEggGDMIIB
f4AUJpvXPIPlsOVstHWHPlWpXLW7XIehggFTpIIBTzCCAUsxGDAWBgUqhQNkARINMTAyMTYwMjg1
NTI2MjEaMBgGCCqFAwOBAwEBEgwwMDE2NTUwNDU0MDYxJjAkBgNVBAkMHdGD0LsuINCaLiDQndCw
0YHRi9GA0Lgg0LQuIDI4MRswGQYJKoZIhvcNAQkBFgxjYUB0YXhuZXQucnUxCzAJBgNVBAYTAlJV
MTMwMQYDVQQIDCoxNiDQoNC10YHQv9GD0LHQu9C40LrQsCDQotCw0YLQsNGA0YHRgtCw0L0xFTAT
BgNVBAcMDNCa0LDQt9Cw0L3RjDEeMBwGA1UECgwV0JfQkNCeINCi0LDQutGB0J3QtdGCMTAwLgYD
VQQLDCfQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAxIzAhBgNVBAMMGtCj
0KYg0JfQkNCeINCi0LDQutGB0J3QtdGCghBYNI0EVKbUuUsu9vPARRbBMIGqBgNVHR8EgaIwgZ8w
TaBLoEmGR2h0dHA6Ly9jYS50YXhuZXQucnUvcmEvY2RwLzI2OWJkNzNjODNlNWIwZTU2Y2I0NzU4
NzNlNTVhOTVjYjViYjVjODcuY3JsME6gTKBKhkhodHRwOi8vY2EyLnRheG5ldC5ydS9yYS9jZHAv
MjY5YmQ3M2M4M2U1YjBlNTZjYjQ3NTg3M2U1NWE5NWNiNWJiNWM4Ny5jcmwwggEgBggrBgEFBQcB
AQSCARIwggEOMC8GCCsGAQUFBzABhiNodHRwOi8vb2NzcC50YXhuZXQucnUvb2NzcC9vY3NwLnNy
ZjAwBggrBgEFBQcwAYYkaHR0cDovL29jc3AyLnRheG5ldC5ydS9vY3NwL29jc3Auc3JmMFMGCCsG
AQUFBzAChkdodHRwOi8vY2EudGF4bmV0LnJ1L3JhL2NkcC8yNjliZDczYzgzZTViMGU1NmNiNDc1
ODczZTU1YTk1Y2I1YmI1Yzg3LmNlcjBUBggrBgEFBQcwAoZIaHR0cDovL2NhMi50YXhuZXQucnUv
cmEvY2RwLzI2OWJkNzNjODNlNWIwZTU2Y2I0NzU4NzNlNTVhOTVjYjViYjVjODcuY2VyMDYGBSqF
A2RvBC0MKyLQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQIiAo0LLQtdGA0YHQuNGPIDMuNikwKwYDVR0Q
BCQwIoAPMjAxNjA1MTYxMzQ4MDBagQ8yMDE3MDUxNjEzNDgwMFowggEzBgUqhQNkcASCASgwggEk
DCsi0JrRgNC40L/RgtC+0J/RgNC+IENTUCIgKNCy0LXRgNGB0LjRjyAzLjYpDFMi0KPQtNC+0YHR
gtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAICLQmtGA0LjQv9GC0L7Qn9GA0L4g0KPQpiIg
0LLQtdGA0YHQuNC4IDEuNQxP0KHQtdGA0YLQuNGE0LjQutCw0YIg0YHQvtC+0YLQstC10YLRgdGC
0LLQuNGPIOKEliDQodCkLzEyNC0yNzM4INC+0YIgMDEuMDcuMjAxNQxP0KHQtdGA0YLQuNGE0LjQ
utCw0YIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNGPIOKEliDQodCkLzEyOC0yNzY4INC+0YIgMzEu
MTIuMjAxNTAIBgYqhQMCAgMDQQAnLRf45CKioMrs69QIvHXz5ZZR54V559Ma2GzJGFaBQ2R2pzkk
SBY5Ne9w8sEsHxqV2aB4XbhWmeP4gdQLs9owMYIBwDCCAbwCAQEwggFbMIIBSzEYMBYGBSqFA2QB
Eg0xMDIxNjAyODU1MjYyMRowGAYIKoUDA4EDAQESDDAwMTY1NTA0NTQwNjEmMCQGA1UECQwd0YPQ
uy4g0JouINCd0LDRgdGL0YDQuCDQtC4gMjgxGzAZBgkqhkiG9w0BCQEWDGNhQHRheG5ldC5ydTEL
MAkGA1UEBhMCUlUxMzAxBgNVBAgMKjE2INCg0LXRgdC/0YPQsdC70LjQutCwINCi0LDRgtCw0YDR
gdGC0LDQvTEVMBMGA1UEBwwM0JrQsNC30LDQvdGMMR4wHAYDVQQKDBXQl9CQ0J4g0KLQsNC60YHQ
ndC10YIxMDAuBgNVBAsMJ9Cj0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDEj
MCEGA1UEAwwa0KPQpiDQl9CQ0J4g0KLQsNC60YHQndC10YICCnfcGhwABQACbO0wCgYGKoUDAgIJ
BQAwCgYGKoUDAgITBQAEQOjPM/hR0mKwT5P9vj1k4TiuNe0iPtacXOpEScLzWGC7UrnZJPPPSajr
F+Uyni7j5D0xqC2i5RnT7SZ85hTDqSo=
------=_Part_2_10277809.1466416053488--
Код программы Код:package smime;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Transport;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.io.File;
import java.io.FileOutputStream;
import java.io.ByteArrayOutputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.cert.Certificate;
import ru.CryptoPro.JCP.JCP;
import CMS_samples.CMS;
public class SMime {
static String smtpHost = "10.102.25.63";
static String smtpPort = "10025";
static String from = "svs@akibank.ru";
static String to = "svs@akibank.ru";
static String subject = "Test mail";
static String content = "Test message";
static String encoding = "base64";
static String STORE_TYPE = JCP.HD_STORE_NAME;
static String STORE_ALIAS = "SMEV_16";
static char[] STORE_PASSWORD = "xxxxx".toCharArray();
static String filename = "c:\\111\\file.txt";
public static final String DIGEST_OID = JCP.GOST_DIGEST_OID;
public static final String SIGN_OID = JCP.GOST_EL_KEY_OID;
public static void main(String[] args) throws Exception {
send();
}
public static void send() throws Exception {
java.util.Properties props = new java.util.Properties();
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.port", "" + smtpPort);
Session session = Session.getDefaultInstance(props, null);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
msg.setSubject(subject, "koi8-r");
Multipart multipart = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(content);
multipart.addBodyPart(messageBodyPart);
File sF = new File(filename);
if (sF != null) {
messageBodyPart = new MimeBodyPart();
messageBodyPart.setFileName(sF.getName());
DataSource src = new FileDataSource(sF.getAbsolutePath());
messageBodyPart.setDataHandler(new DataHandler(src));
multipart.addBodyPart(messageBodyPart);
}
MimeBodyPart mimeBodyForSign = new MimeBodyPart();
mimeBodyForSign.setContent(multipart);
msg.setContent(multipart);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
msg.writeTo(bos);
String tmpStr = bos.toString();
String strToSign = tmpStr.substring(tmpStr.indexOf("Content-Type:"));
new FileOutputStream("c:\\!\\SMIME_out\\strToSign.txt").write(strToSign.getBytes());
MimeMultipart multipartSign = make(mimeBodyForSign, strToSign);
msg.setContent(multipartSign, multipartSign.getContentType());
msg.saveChanges();
msg.writeTo(new FileOutputStream("c:\\!\\SMIME_out\\sign_msg.txt"));
Transport.send(msg);
}
private static MimeMultipart make(MimeBodyPart paramMimeBodyPart, String strToSign)
throws Exception {
try {
MimeBodyPart localMimeBodyPart = new MimeBodyPart();
byte[] b = myCMSSign(strToSign.getBytes(),true);
localMimeBodyPart.setContent(b, "application/pkcs7-signature; name=smime.p7s; smime-type=signed-data");
localMimeBodyPart.addHeader("Content-Type", "application/pkcs7-signature; name=smime.p7s; smime-type=signed-data");
localMimeBodyPart.addHeader("Content-Disposition", "attachment; filename=\"smime.p7s\"");
localMimeBodyPart.addHeader("Content-Description", "S/MIME Cryptographic Signature");
localMimeBodyPart.addHeader("Content-Transfer-Encoding", encoding);
StringBuffer localStringBuffer = new StringBuffer("signed; protocol=\"application/pkcs7-signature\"");
MimeMultipart localMimeMultipart = new MimeMultipart(localStringBuffer.toString());
localMimeMultipart.addBodyPart(paramMimeBodyPart);
localMimeMultipart.addBodyPart(localMimeBodyPart);
return localMimeMultipart;
} catch (Exception localMessagingException) {
throw new Exception("exception putting multi-part together.", localMessagingException);
}
}
public static byte[] myCMSSign(byte[] data, boolean detached) throws Exception {
PrivateKey key = loadKey(STORE_ALIAS, STORE_PASSWORD);
Certificate cert = loadCertificate(STORE_ALIAS);
return CMS.CMSSign(data, key, cert, detached);
}
private static boolean loadSert(Certificate cert, PrivateKey key) {
try {
KeyStore hdImageStore = KeyStore.getInstance(STORE_TYPE);
hdImageStore.load(null, null);
cert = hdImageStore.getCertificate(STORE_ALIAS);
key = (PrivateKey) hdImageStore.getKey(STORE_ALIAS, STORE_PASSWORD);
} catch (Exception loadSertExp) {
System.out.println("loadSert error : " + loadSertExp);
return false;
}
return true;
}
public static PrivateKey loadKey(String name, char[] password)
throws Exception {
final KeyStore hdImageStore = KeyStore.getInstance(STORE_TYPE);
hdImageStore.load(null, null);
return (PrivateKey) hdImageStore.getKey(name, password);
}
public static Certificate loadCertificate(String name)
throws Exception {
final KeyStore hdImageStore = KeyStore.getInstance(STORE_TYPE);
hdImageStore.load(null, null);
return hdImageStore.getCertificate(name);
}
}
Другими словами: с закомментированной 65 строкой Outlook письмо принимает, иначе - нет
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил SVS_aki за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.06.2016(UTC) Сообщений: 6
Поблагодарили: 1 раз в 1 постах
|
Проблема решена. Оказывается на каком то этапе пересылки письма MIME сообщение чуть трансформируется, например строка из исходного сообщения Цитата:Content-Type: text/plain; charset=us-ascii; name=file.txt превращается в Цитата:Content-Type: text/plain; charset=us-ascii; name="file.txt" Естественно, Outlook считает, что подписанное сообщение отличается от исходного. Разбираться кто виноват в это, JavaMail, почтовый сервер или Outlook не стал, просто подогнал формат подписываемого сообщения.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.04.2016(UTC) Сообщений: 108
Сказал(а) «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Автор: SVS_aki ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Проблема решена. Здравствуйте! Уже неделю мучаюсь - не могу получить подписанное сообщение. Все делаю по вашему примеру. Проверяю на http://dss.cryptopro.ru/Verify/Verify/ - подпись формата CMS (открепленная) - проверка проходит (сравниваю строку для подписи strToSign.txt и саму подпись), подпись валидна. Кажется все хорошо должно быть, но когда письмо приходит на gmail - письмо фальсифицировано,в Outlook тоже самое (ругается на подпись). Подписываю сертификатом, который используется еще для СМЭВ. В чем может быть проблема подскажите пожалуйста.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.04.2016(UTC) Сообщений: 108
Сказал(а) «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Строка для подписи Код:Content-Type: multipart/mixed;
boundary="----=_Part_0_374110595.1508486431221"
------=_Part_0_374110595.1508486431221
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Test message
------=_Part_0_374110595.1508486431221--
Само письмо Код:Message-ID: <1014026039.1508486432742.JavaMail.javamailuser@localhost>
From: *******
To: ****@gmail.com
Subject: Test mail
Mime-Version: 1.0
Content-Type: multipart/signed; protocol="application/pkcs7-signature";
boundary="----=_Part_1_859845986.1508486432741"
------=_Part_1_859845986.1508486432741
Content-Type: multipart/mixed;
boundary="----=_Part_0_374110595.1508486431221"
------=_Part_0_374110595.1508486431221
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Test message
------=_Part_0_374110595.1508486431221--
------=_Part_1_859845986.1508486432741
Content-Type: application/pkcs7-signature; name=smime.p7s; smime-type=signed-data
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature
M***
...
...
...***x
------=_Part_1_859845986.1508486432741--
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.04.2016(UTC) Сообщений: 108
Сказал(а) «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Кроме КриптоПро JCP есть КриптоПро CSP - может есть консольная команда по созданию и подписи формата PKCS#7, типа openssl. Подписывал строку strToSign.txt через openssl openssl smime -sign..... самоподписным сертификатом - отправлял, получал корректное подписанное сообщение (естественно ругался на сертификат - не доверенный). Может есть какие-то требования по сертификату? Сертификат выдан организации, подпись осуществляется пользователем, коннект к SMTP серверу под другой учеткой. P.S.: КриптоПро JCP 2.0.37 + jre7 Отредактировано пользователем 20 октября 2017 г. 14:50:50(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close