Статус: Участник
Группы: Участники
Зарегистрирован: 28.09.2018(UTC) Сообщений: 25 Откуда: Moscow Сказал(а) «Спасибо»: 1 раз
|
Приветствую уважаемые коллеги! Я новичок в данном деле (не тот новичок которым отравили Скрипалей). Меня интересует процедура подписи и проверки документа. Вот что я могу: Использую libphpcades.so крипто про 4 Скрипт:
/** * @return int|string */ public function sign() { try {
$address = "http://testca.cryptopro.ru/tsp/tsp.srf"; $cert = $this->SetupCertificate( CURRENT_USER_STORE, $this->storeName, STORE_OPEN_READ_ONLY, $this->findType, $this->query, //Идентификатор сертификата в строке CN 0, 1 );
if (!$cert) { return "Certificate not found"; }
$this->Signer->set_TSAAddress($address); $this->Signer->set_Certificate($cert);
$this->SignedData->set_Content($this->content); $sm = $this->SignedData->Sign($this->Signer, 0, STRING_TO_UCS2LE); printf("Signature is:\n"); printf($sm); printf("\n"); $this->SignedData->Verify($sm, 0, VERIFY_SIGNATURE_AND_CERTIFICATE); return 1; } catch (Exception $e) { return 0; } }
И все здесь хорошо, контент подписывается, я получаю некую информацию. Главные вопросы В метод $this->SignedData->set_Content(<что сюда отдавать>) звучит глупо, и все же. Ну не могу же я к примеру файл размером 5 MB отдать или 1 GB ???? Я так полагаю сюда отдаётся md5??? В переменной $sm сформировалась сигнатура, что с ней делать? Это подпись? Можно в общих словах объяснить процедуру подписи файла?. Спасибо!
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 28.09.2018(UTC) Сообщений: 25 Откуда: Moscow Сказал(а) «Спасибо»: 1 раз
|
Вот пример того что я получаю: Сигнатура:
MIImOQYJKoZIhvcNAQcCoIImKjCCJiYCAQExDjAMBggqhQMHAQECAgUAMBkGCSqGSIb3DQEHAaAM BApQAEsAAwAEABQAoIIDaDCCA2QwggMToAMCAQICExIALWnAAz9YUXQ85PIAAAAtacAwCAYGKoUD AgIDMH8xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRAY3J5cHRvcHJvLnJ1MQswCQYDVQQGEwJSVTEP MA0GA1UEBxMGTW9zY293MRcwFQYDVQQKEw5DUllQVE8tUFJPIExMQzEhMB8GA1UEAxMYQ1JZUFRP LVBSTyBUZXN0IENlbnRlciAyMB4XDTE4MDkyMzIwNDEzMloXDTE4MTIyMzIwNTEzMlowczEaMBgG CCqFAwOBAwEBEgwwMDc4MTQ1MDg5MjExGzAZBgkqhkiG9w0BCQEWDHVzZXJAc2l0ZS5ydTELMAkG A1UEBhMCUlUxFjAUBgNVBAMMDUFETUlOSVNUUkFUT1IxEzARBgNVBAQMCtCY0LPQvtGA0YwwZjAf BggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARAbrSDB6mzHhCYnbk+zCzsSOiZbnyp 9z4e346PxSqgyFjMDffG/02cbTmktDcTWbNxQdvRZd8Ib15qpi7ipTkEYaOCAW0wggFpMBMGA1Ud JQQMMAoGCCsGAQUFBwMEMAsGA1UdDwQEAwIE8DAdBgNVHQ4EFgQUXAbsL9nbmp23kE4NNMgj3amm t+wwHwYDVR0jBBgwFoAUFTF8sI0a3mbXFZxJUpcXJLkBeoMwWQYDVR0fBFIwUDBOoEygSoZIaHR0 cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUvQ2VydEVucm9sbC9DUllQVE8tUFJPJTIwVGVzdCUyMENl bnRlciUyMDIuY3JsMIGpBggrBgEFBQcBAQSBnDCBmTBhBggrBgEFBQcwAoZVaHR0cDovL3Rlc3Rj YS5jcnlwdG9wcm8ucnUvQ2VydEVucm9sbC90ZXN0LWNhLTIwMTRfQ1JZUFRPLVBSTyUyMFRlc3Ql MjBDZW50ZXIlMjAyLmNydDA0BggrBgEFBQcwAYYoaHR0cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUv b2NzcC9vY3NwLnNyZjAIBgYqhQMCAgMDQQAvahGfoLNyw3rX2sY7rTY1v/xUhQTpFKE6CyLxa7aJ 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 UFRPLVBSTyUyMFRlc3QlMjBDZW50ZXIlMjAyLmNybDCBqQYIKwYBBQUHAQEEgZwwgZkwYQYIKwYB BQUHMAKGVWh0dHA6Ly90ZXN0Y2EuY3J5cHRvcHJvLnJ1L0NlcnRFbnJvbGwvdGVzdC1jYS0yMDE0 X0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVyJTIwMi5jcnQwNAYIKwYBBQUHMAGGKGh0dHA6Ly90 ZXN0Y2EuY3J5cHRvcHJvLnJ1L29jc3Avb2NzcC5zcmYwCAYGKoUDAgIDA0EAVrWiW+RbLAuZRfQ0 E/zuwNOT9gL0BJxm4S4q25gQuGrVJmKGtehf/6cLeJkNWtv62VFaCppoMD5uvenIpN35fDGCAwMw ggL/AgEBMIGWMH8xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRAY3J5cHRvcHJvLnJ1MQswCQYDVQQG EwJSVTEPMA0GA1UEBxMGTW9zY293MRcwFQYDVQQKEw5DUllQVE8tUFJPIExMQzEhMB8GA1UEAxMY Q1JZUFRPLVBSTyBUZXN0IENlbnRlciAyAhMSACdF10Az5QIkBFeTAAAAJ0XXMAoGBiqFAwICCQUA oIICBTAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIPUV5yGRDome xGklPo9dL9eJegkwVk/+56pk/dygiN48MIHOBgsqhkiG9w0BCRACDDGBvjCBuzCBuDCBtQQUEhTS fILnDwRiAHpO1Qbnhc/KwZgwgZwwgYSkgYEwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlw dG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1Q Uk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDICExIAJ0XXQDPlAiQEV5MA AAAnRdcwgeQGCyqGSIb3DQEJEAIvMYHUMIHRMIHOMIHLMAgGBiqFAwICCQQgDI1oMuTZugpWhUJC fUg2V/jP9JwLmNJLiXgw0RNzOycwgZwwgYSkgYEwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBj cnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBU Ty1QUk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDICExIAJ0XXQDPlAiQE V5MAAAAnRdcwCgYGKoUDAgITBQAEQBUqIQv5zvoMiA34VA6S+y9dYGVH63AikWfN2zUZf91Of4XI 3Oq4cVDqDc7xxJj5X/CbNufU864onGpAjg/jO7swggjmBgsqhkiG9w0BCRACFzGCCNUwggjRMIID ZDCCAxOgAwIBAgITEgAtacADP1hRdDzk8gAAAC1pwDAIBgYqhQMCAgMwfzEjMCEGCSqGSIb3DQEJ ARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAV BgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDIw HhcNMTgwOTIzMjA0MTMyWhcNMTgxMjIzMjA1MTMyWjBzMRowGAYIKoUDA4EDAQESDDAwNzgxNDUw ODkyMTEbMBkGCSqGSIb3DQEJARYMdXNlckBzaXRlLnJ1MQswCQYDVQQGEwJSVTEWMBQGA1UEAwwN QURNSU5JU1RSQVRPUjETMBEGA1UEBAwK0JjQs9C+0YDRjDBmMB8GCCqFAwcBAQEBMBMGByqFAwIC JAAGCCqFAwcBAQICA0MABEButIMHqbMeEJiduT7MLOxI6JlufKn3Ph7fjo/FKqDIWMwN98b/TZxt OaS0NxNZs3FB29Fl3whvXmqmLuKlOQRho4IBbTCCAWkwEwYDVR0lBAwwCgYIKwYBBQUHAwQwCwYD VR0PBAQDAgTwMB0GA1UdDgQWBBRcBuwv2duanbeQTg00yCPdqaa37DAfBgNVHSMEGDAWgBQVMXyw jRreZtcVnElSlxckuQF6gzBZBgNVHR8EUjBQME6gTKBKhkhodHRwOi8vdGVzdGNhLmNyeXB0b3By by5ydS9DZXJ0RW5yb2xsL0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVyJTIwMi5jcmwwgakGCCsG AQUFBwEBBIGcMIGZMGEGCCsGAQUFBzAChlVodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0 RW5yb2xsL3Rlc3QtY2EtMjAxNF9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIuY3J0MDQG CCsGAQUFBzABhihodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9vY3NwL29jc3Auc3JmMAgGBiqF AwICAwNBAC9qEZ+gs3LDetfaxjutNjW//FSFBOkUoToLIvFrtolRgBB0hpH0Y/FVjg935RZHMgq6 GZlKEK6NtY8SyDW327UwggJMMIIB+6ADAgECAhArbjNR/W6yrUggAgPLW6FBMAgGBiqFAwICAzB/ MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxDzANBgNV BAcTBk1vc2NvdzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNVBAMTGENSWVBUTy1QUk8g VGVzdCBDZW50ZXIgMjAeFw0xNDA4MDUxMzQ0MjRaFw0xOTA4MDUxMzU0MDNaMH8xIzAhBgkqhkiG 9w0BCQEWFHN1cHBvcnRAY3J5cHRvcHJvLnJ1MQswCQYDVQQGEwJSVTEPMA0GA1UEBxMGTW9zY293 MRcwFQYDVQQKEw5DUllQVE8tUFJPIExMQzEhMB8GA1UEAxMYQ1JZUFRPLVBSTyBUZXN0IENlbnRl ciAyMGMwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEDQwAEQOBSCtxH3Cm91yBfDEh879SN HnYl0L1SBY6tzcrLZgym6eb6UCbkkiBucIBKvNb9DjcQx+aFAbLt1mKOubfNx56jUTBPMAsGA1Ud DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQVMXywjRreZtcVnElSlxckuQF6gzAQ BgkrBgEEAYI3FQEEAwIBADAIBgYqhQMCAgMDQQDYyhxL6WEgZUcs1cjqOIjezexxyEW/v5zl3v9V Wnckme3guSLRq+f3T+bQb3uPWirjTulkDZBQMsHx47RJElfVMIIDFTCCAsSgAwIBAgITEgAnRdQm I84B2oli0wAAACdF1DAIBgYqhQMCAgMwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9w cm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8g TExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDIwHhcNMTgwNDAyMDcxNTE3WhcN MTkwNzAyMDcyNTE3WjCBqDFEMEIGA1UEAww70KLQtdGB0YLQvtCy0LDRjyDRgdC70YPQttCx0LAg T0NTUCDQvdCwIHRlc3RjYS5jcnlwdG9wcm8ucnUxJTAjBgNVBAoMHNCe0J7QniAi0JrQoNCY0J/Q otCeLdCf0KDQniIxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEVMBMGA1UECAwM0JzQvtGB0LrQstCw MQswCQYDVQQGEwJSVTBjMBwGBiqFAwICEzASBgcqhQMCAiMBBgcqhQMCAh4BA0MABEAnpTojmhoh W2eMte7vvSd7uYokJzTpWRTLi4cw148QNYnmKv+yjCYt5N0uB+SJ3Z+lQRmLXFZjJFwfgoN0Br5V o4HsMIHpMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAwDgYDVR0PAQH/BAQD AgbAMB0GA1UdDgQWBBS8hVIFtY6WG07iE9IWXuCFcqt8vDAfBgNVHSMEGDAWgBQVMXywjRreZtcV nElSlxckuQF6gzBxBggrBgEFBQcBAQRlMGMwYQYIKwYBBQUHMAKGVWh0dHA6Ly90ZXN0Y2EuY3J5 cHRvcHJvLnJ1L0NlcnRFbnJvbGwvdGVzdC1jYS0yMDE0X0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2Vu dGVyJTIwMi5jcnQwCAYGKoUDAgIDA0EA8bFEghAwYsgUpYt2pL5mTRIcdbeuzq0SYRAjeoQ9ZFA3 9UCjy43TXOa0RPbGKaDTOQHKeXRoZDhcJM59/ImCAzCCCvAGCyqGSIb3DQEJEAIOMYIK3zCCCtsG CSqGSIb3DQEHAqCCCswwggrIAgEDMQwwCgYGKoUDAgIJBQAwgZQGCyqGSIb3DQEJEAEEoIGEBIGB MH8CAQEGICqFAwICAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBMC4wCgYIKoUDBwEBAgIEIGBy rbmX2zY30yw6gZaT/aKvT2BY4yYrL3vdoAAkcT2hAg0FenVF3gAAAAAAFqVGGA8yMDE4MDkyODE4 MDA1NloCCDYANje2/qsQMYIKHDCCChgCAQEwgZYwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBj cnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBU Ty1QUk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDICExIAJ0XXQDPlAiQE V5MAAAAnRdcwCgYGKoUDAgIJBQCgggIFMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkq hkiG9w0BCQQxIgQgMQ9eAnpJim/fgsu+TepW6F8kq2Grs3mO67T3cBCKh2gwgc4GCyqGSIb3DQEJ EAIMMYG+MIG7MIG4MIG1BBQSFNJ8gucPBGIAek7VBueFz8rBmDCBnDCBhKSBgTB/MSMwIQYJKoZI hvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxDzANBgNVBAcTBk1vc2Nv dzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNVBAMTGENSWVBUTy1QUk8gVGVzdCBDZW50 ZXIgMgITEgAnRddAM+UCJARXkwAAACdF1zCB5AYLKoZIhvcNAQkQAi8xgdQwgdEwgc4wgcswCAYG KoUDAgIJBCAMjWgy5Nm6ClaFQkJ9SDZX+M/0nAuY0kuJeDDRE3M7JzCBnDCBhKSBgTB/MSMwIQYJ KoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxDzANBgNVBAcTBk1v c2NvdzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNVBAMTGENSWVBUTy1QUk8gVGVzdCBD ZW50ZXIgMgITEgAnRddAM+UCJARXkwAAACdF1zAKBgYqhQMCAhMFAARAoYlKLjqqSbUCbdmgeAiH 8VXCY2rvnSNfiaPqmlWp3jPWtR7SMPx/avFD6b2+xAGeTnQTipuY2FGW8PBuR/IzdKGCBxUwEQYL KoZIhvcNAQkQAhgxAjAAMBUGCyqGSIb3DQEJEAIWMQYwBDAAMAAwgeIGCyqGSIb3DQEJEAIVMYHS MIHPMIHMMC4wCgYIKoUDBwEBAgIEINH0QOdDUMKrq/KTIKlbfBVsdpRcThmArz296JA6tcO4MIGZ MIGEpIGBMH8xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRAY3J5cHRvcHJvLnJ1MQswCQYDVQQGEwJS VTEPMA0GA1UEBxMGTW9zY293MRcwFQYDVQQKEw5DUllQVE8tUFJPIExMQzEhMB8GA1UEAxMYQ1JZ UFRPLVBSTyBUZXN0IENlbnRlciAyAhArbjNR/W6yrUggAgPLW6FBMIIGAgYLKoZIhvcNAQkQAhcx ggXxMIIF7TCCA5kwggNIoAMCAQICExIAJ0XXQDPlAiQEV5MAAAAnRdcwCAYGKoUDAgIDMH8xIzAh BgkqhkiG9w0BCQEWFHN1cHBvcnRAY3J5cHRvcHJvLnJ1MQswCQYDVQQGEwJSVTEPMA0GA1UEBxMG TW9zY293MRcwFQYDVQQKEw5DUllQVE8tUFJPIExMQzEhMB8GA1UEAxMYQ1JZUFRPLVBSTyBUZXN0 IENlbnRlciAyMB4XDTE4MDQwMjA3MTYxOVoXDTE5MDcwMjA3MjYxOVowgacxQzBBBgNVBAMMOtCi 0LXRgdGC0L7QstCw0Y8g0YHQu9GD0LbQsdCwIFRTUCDQvdCwIHRlc3RjYS5jcnlwdG9wcm8ucnUx JTAjBgNVBAoMHNCe0J7QniAi0JrQoNCY0J/QotCeLdCf0KDQniIxFTATBgNVBAcMDNCc0L7RgdC6 0LLQsDEVMBMGA1UECAwM0JzQvtGB0LrQstCwMQswCQYDVQQGEwJSVTBjMBwGBiqFAwICEzASBgcq hQMCAiMBBgcqhQMCAh4BA0MABEClA6LZZkBgFPhGdYCUVNNqUR7QRI4WG0WTDRgTKQ3BbuWKKOmj FJEEnL+1nYfwwQHK4eCBZ5GPc+0S2YLZzgdto4IBcDCCAWwwEwYDVR0lBAwwCgYIKwYBBQUHAwgw DgYDVR0PAQH/BAQDAgbAMB0GA1UdDgQWBBT9d/bqFmnj/lzQI8zReDL/1RI9HjAfBgNVHSMEGDAW gBQVMXywjRreZtcVnElSlxckuQF6gzBZBgNVHR8EUjBQME6gTKBKhkhodHRwOi8vdGVzdGNhLmNy eXB0b3Byby5ydS9DZXJ0RW5yb2xsL0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVyJTIwMi5jcmww gakGCCsGAQUFBwEBBIGcMIGZMGEGCCsGAQUFBzAChlVodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5y dS9DZXJ0RW5yb2xsL3Rlc3QtY2EtMjAxNF9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIu Y3J0MDQGCCsGAQUFBzABhihodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9vY3NwL29jc3Auc3Jm MAgGBiqFAwICAwNBAFa1olvkWywLmUX0NBP87sDTk/YC9AScZuEuKtuYELhq1SZihrXoX/+nC3iZ DVrb+tlRWgqaaDA+br3pyKTd+XwwggJMMIIB+6ADAgECAhArbjNR/W6yrUggAgPLW6FBMAgGBiqF AwICAzB/MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUx DzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNVBAMTGENSWVBU Ty1QUk8gVGVzdCBDZW50ZXIgMjAeFw0xNDA4MDUxMzQ0MjRaFw0xOTA4MDUxMzU0MDNaMH8xIzAh BgkqhkiG9w0BCQEWFHN1cHBvcnRAY3J5cHRvcHJvLnJ1MQswCQYDVQQGEwJSVTEPMA0GA1UEBxMG TW9zY293MRcwFQYDVQQKEw5DUllQVE8tUFJPIExMQzEhMB8GA1UEAxMYQ1JZUFRPLVBSTyBUZXN0 IENlbnRlciAyMGMwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEDQwAEQOBSCtxH3Cm91yBf DEh879SNHnYl0L1SBY6tzcrLZgym6eb6UCbkkiBucIBKvNb9DjcQx+aFAbLt1mKOubfNx56jUTBP MAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQVMXywjRreZtcVnElSlxck uQF6gzAQBgkrBgEEAYI3FQEEAwIBADAIBgYqhQMCAgMDQQDYyhxL6WEgZUcs1cjqOIjezexxyEW/ v5zl3v9VWnckme3guSLRq+f3T+bQb3uPWirjTulkDZBQMsHx47RJElfV
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Здравствуйте.
До вызова set_Content - необходимо указать, что данные предварительно были закодированы в base64.
в content передавать base64 строку.
Сейчас в подписи (тип - присоедиенная) - есть только 10 байт и по сигнатуре "PK" - похоже, что была попытка "подписать" архив, но файл прочитали как "текстовый"?
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Здесь посмотрите пример (описана проверка) Цитата: $content = base64_encode(file_get_contents(путь к файлу));
$sd->set_ContentEncoding(BASE64_TO_BINARY); $sd->set_Content($content);
|
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 28.09.2018(UTC) Сообщений: 25 Откуда: Moscow Сказал(а) «Спасибо»: 1 раз
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 28.09.2018(UTC) Сообщений: 25 Откуда: Moscow Сказал(а) «Спасибо»: 1 раз
|
Моя радость была не долгой.
Из за чего ошибка 0x80091004 в гугле информации 0.
Лицензия активна на CSP и TSP
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 28.09.2018(UTC) Сообщений: 25 Откуда: Moscow Сказал(а) «Спасибо»: 1 раз
|
Еще час назад было все ок.
0x80091004 Invalid cryptographic message type Неправильный формат файла 4 0x80091010 The streamed cryptographic message is not ready to return data Пустой файл 16
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Автор: IGORPzzz Моя радость была не долгой.
Из за чего ошибка 0x80091004 в гугле информации 0.
Лицензия активна на CSP и TSP
Неправильные данные в содержимом. Без кода и примеров - не понятно, что делалось. + есть проверка криптографии - через плагин, а здесь для CadesT и примеры в CPDN. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 28.09.2018(UTC) Сообщений: 25 Откуда: Moscow Сказал(а) «Спасибо»: 1 раз
|
Вот полностью код Код:<?php
/**
* Created by PhpStorm.
* User: igorp
* Date: 28.09.2018
* Time: 18:47
*/
namespace Api\Model\SignatureService;
use Csp\CPSignedData;
use Csp\CPSigner;
use Csp\CPStore;
use Engine\Core\Config\Config;
use Engine\DI\DI;
use Engine\Model;
use Exception;
class SignatureService extends Model
{
/**
* @var CPStore
*/
private $Store;
/**
* @var CPSigner
*/
private $Signer;
/**
* @var CPSignedData
*/
private $SignedData;
/**
* @var string
*/
public $query = 'ADMINISTRATOR';
/**
* @var int
*/
public $findType = 1;
public $content;
/**
* @var string
*/
public $storeName = 'My';
/**
* @var string
*/
public $tspServer = '';
/**
* Тип подписываемого контента
* @var int
*/
public $contentEncoding = BASE64_TO_BINARY;
/**
* SignatureService constructor.
* @param DI $di
*/
public function __construct (DI $di)
{
parent::__construct($di);
$this->Store = new CPStore();
// $this->Signer = new CPSigner();
$class = "CPSigner"; $this->Signer = new $class();
// $class = "CPSignedData"; $this->SignedData = new $class();
$this->SignedData = new CPSignedData();
}
/**
* @return bool|string
*/
public function sign()
{
try {
if (empty($this->tspServer))
$this->tspServer = Config::item('TSP_SERVER', 'signature_service');
$cert = $this->SetupCertificate(
CURRENT_USER_STORE,
'My',
STORE_OPEN_READ_ONLY,
CERTIFICATE_FIND_SUBJECT_NAME,
'ADMINISTRATOR', //Идентификатор сертификата в строке CN
0,
1
);
if (!$cert) {
return 'нет сетрификата';
}
$this->Signer->set_TSAAddress($this->tspServer);
$this->Signer->set_Certificate($cert);
$this->SignedData->set_ContentEncoding(BASE64_TO_BINARY);
$this->SignedData->set_Content($this->content);
$sm = $this->SignedData->Sign($this->Signer, 0, STRING_TO_UCS2LE);
print_r($sm);
$this->SignedData->Verify($sm, 0, VERIFY_SIGNATURE_AND_CERTIFICATE);
return 1;
} catch (Exception $e) {
echo $e->getMessage();
}
}
/**
* @param string $signature
*/
public function verify(string $signature)
{
}
/**
* @param $location
* @param $name
* @param $mode
* @return CPStore
*/
private function SetupStore($location, $name, $mode)
{
$store = new CPStore();
$store->Open($location, $name, $mode);
return $store;
}
/**
* @param $location
* @param $name
* @param $mode
* @return object
*/
private function SetupCertificates($location, $name, $mode)
{
$store = $this->SetupStore($location, $name, $mode);
$certs = $store->get_Certificates();
return $certs;
}
/**
* @param $location
* @param $name
* @param $mode
* @param $find_type
* @param $query
* @param $valid_only
* @param $number
* @return mixed
*/
private function SetupCertificate($location, $name, $mode, $find_type, $query, $valid_only, $number)
{
$certs = $this->SetupCertificates($location, $name, $mode);
if ($find_type != null) {
$certs = $certs->Find($find_type, $query, $valid_only);
return $certs->Item($number);
} else {
$cert = $certs->Item($number);
return $cert;
}
}
/**
* @param mixed $content
*/
public function setContent ($content)
{
$this->content = $content;
}
}
Вот код который инициализирует подпись Код: public function execute()
{
$task = $this->taskManagement->GetNextJob();
if (empty($task))
return false;
if (file_exists($task['file_root'])){
$this->signatureService->query = $task['query'];
$content = base64_encode(file_get_contents('/home/admin/web/48270.vps.local/public_html/content/files/photo.jpg'));//$task['file_root']
$this->signatureService->findType = (int)$task['encoding_type'];
$this->signatureService->setContent($content);
$this->signatureService->sign();
}
}
Все работает до строчки $sm = $this->SignedData->Sign($this->Signer, 0, STRING_TO_UCS2LE); Отредактировано пользователем 29 сентября 2018 г. 10:51:01(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 28.09.2018(UTC) Сообщений: 25 Откуда: Moscow Сказал(а) «Спасибо»: 1 раз
|
Даже официальный пример для php перестал работать.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close