Статус: Новичок
Группы: Участники
Зарегистрирован: 08.07.2015(UTC) Сообщений: 4 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Здравствуйте. Наша система интегрируется с ЕСИА по средствам OAuth2. Необходимо в запросе отправить подпись от определённых параметров в данном формате. Процесс подписания был сделан на основе примера CAdES/PKCS7Example.java, однако на тестовой площадке ЕСИА возникает ошибка Signature validation error: Malformed content.. Подскажите, пожалуйста, что я делаю не так и как исправить эту ситуацию? Код:
private static final String KEY_STORE_TYPE = "HDImageStore";
private static final String ENCODING = "UTF-8";
public static String sign(String phrase, Crypto crypto) throws Exception {
final PKCS7Signer signer = new PKCS7Signer();
final byte[] phraseBytes = phrase.getBytes(ENCODING);
final byte[] signedBytes = signer.signPKCS7(phraseBytes, signer.loadKeyStore(crypto), crypto);
return Base64.encodeBase64URLSafeString(signedBytes);
}
private KeyStore loadKeyStore(final Crypto crypto) throws Exception {
final KeyStore keyStore = KeyStore.getInstance(KEY_STORE_TYPE);
HDImageStore.setDir(crypto.getPath());
keyStore.load(null, null);
return keyStore;
}
private byte[] signPKCS7(byte[] phraseBytes, KeyStore keyStore, Crypto crypto) throws Exception {
// Добавляем криптопровайдер
Security.addProvider(new BouncyCastleProvider());
// Заменяем GOST-алгоритм
Utility.initJCPAlgorithms();
final String alias = crypto.getAlias();
final List<Certificate> certificateChain = Arrays.asList(keyStore.getCertificateChain(alias));
// Конвертируем цепочку в X509Certificate.
final Collection<X509Certificate> chain
= Arrays.asList(certificateChain.toArray(new X509Certificate[certificateChain.size()]));
// Сертификат подписи - первый в списке.
final X509Certificate certificate = chain.iterator().next();
final PrivateKey privateKey
= (PrivateKey)keyStore.getKey(alias, crypto.getPassword().toCharArray());
final CertStore certStore = CertStore.getInstance("Collection", new CollectionCertStoreParameters(chain), "BC");
// Подготавливаем подпись.
final CMSSignedDataGenerator generator = new CMSSignedDataGenerator();
generator.addSigner(privateKey, certificate, JCP.GOST_EL_DH_OID, JCP.GOST_DIGEST_OID);
generator.addCertificatesAndCRLs(certStore);
// Сформированная подпись.
return generator.generate(new CMSProcessableByteArray(phraseBytes), true, JCP.PROVIDER_NAME).getEncoded();
}
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Здравствуйте. Автор: JackTheCat ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Signature validation error: Malformed content..
Это сообщение ни о чем не говорит, уточните, что оно означает. Кстати, true в generator.generate по идее означает совмещенную подпись, а не отделенную. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 08.07.2015(UTC) Сообщений: 4 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
kafevanda
, спасибо за быстрый ответ! Я пробовал с ключом false - всё равно подпись не принимается. Насчёт ошибки, техподдержка ЕСИА написала следующее: Цитата:По Вашему обращению (INC000000961164) сообщаем: Ошибка Signature verification process failed. Подпись в запросе сформирована некорректно, ЕСИА не может её распаковать.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Запросите у них образец подписи. Может быть, ее в base64 кодировать не надо. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 08.07.2015(UTC) Сообщений: 4 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Кодирование в base64 url safe - требование методрекомендаций:
<client_secret> – подпись запроса в формате PKCS#7 detached signature в кодировке UTF-8 от значений четырех параметров HTTP–запроса: scope, timestamp, clientId, state (без разделителей). <client_secret> должен быть закодирован в формате base64 url safe. Используемый для проверки подписи сертификат должен быть предварительно зарегистрирован в ЕСИА и привязан к учетной записи системы-клиента в ЕСИА. ЕСИА поддерживает сертификаты в формате X.509. ЕСИА поддерживает алгоритмы формирования электронной подписи RSA с длиной ключа 2048 и алгоритмом криптографического хэширования SHA-256, а также алгоритм электронной подписи ГОСТ Р 34.10-2001 и алгоритм криптографического хэширования ГОСТ Р 34.11-94.
Я запрашивал образец.
Подпись от ЕСИА Код:GET https://esia-portal2.test.gosuslugi.ru/aas/oauth2/ac?client_id=RTST&client_secret=MIII8gYJKoZIhvcNAQcCoIII4zCCCN8CAQExDDAKBgYqhQMCAgkFADALBgkqhkiG9w0BBwGgggb-MIIG-jCCBqmgAwIBAgIKG0DiHwAAAAABCzAIBgYqhQMCAgMwggFGMRgwFgYFKoUDZAESDTEyMzQ1Njc4OTAxMjMxGjAYBggqhQMDgQMBARIMMDAxMjM0NTY3ODkwMSkwJwYDVQQJDCDQodGD0YnQtdCy0YHQutC40Lkg0LLQsNC7INC0LiAyNjEXMBUGCSqGSIb3DQEJARYIY2FAcnQucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC-0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEkMCIGA1UECgwb0J7QkNCeINCg0L7RgdGC0LXQu9C10LrQvtC8MTAwLgYDVQQLDCfQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAxNDAyBgNVBAMMK9Ci0LXRgdGC0L7QstGL0Lkg0KPQpiDQoNCi0JogKNCg0KLQm9Cw0LHRgSkwHhcNMTUwNDI0MTIyMzAwWhcNMTYwNDI0MTIzMjAwWjCBxzEYMBYGBSqFA2QBEg0xMDM1MDA5NTY3NDUwMRowGAYIKoUDA4EDAQESDDAwNTA0NzA1MzkyMDELMAkGA1UEBhMCUlUxMzAxBgNVBAgeKgA1ADAAIAQcBD4EQQQ6BD4EMgRBBDoEMARPACAEPgQxBDsEMARBBEIETDEZMBcGA1UEBx4QBDMALgAgBCUEOAQ8BDoEODEjMCEGA1UECh4aBB4EEAQeACAAIgQgBCIAIAQbBDAEMQRBACIxDTALBgNVBAMTBFJUU1QwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAF8bApm4_rDI1esqEZSG8EDI1qIyqKAIkPx9NeHmxgTtwTTPWNsyCcgRepf3AEcQBz7hhvT642vNRFVXYI-qDUaOCA_EwggPtMA4GA1UdDwEB_wQEAwIE8DAmBgNVHSUEHzAdBggrBgEFBQcDBAYHKoUDAgIiBgYIKwYBBQUHAwIwHQYDVR0OBBYEFOPRHtriZsGvCG--KSXDwAwbeO4WMIIBhwYDVR0jBIIBfjCCAXqAFEGyzDKcOH8t_YyGFVgjYgp39Sz_oYIBTqSCAUowggFGMRgwFgYFKoUDZAESDTEyMzQ1Njc4OTAxMjMxGjAYBggqhQMDgQMBARIMMDAxMjM0NTY3ODkwMSkwJwYDVQQJDCDQodGD0YnQtdCy0YHQutC40Lkg0LLQsNC7INC0LiAyNjEXMBUGCSqGSIb3DQEJARYIY2FAcnQucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC-0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEkMCIGA1UECgwb0J7QkNCeINCg0L7RgdGC0LXQu9C10LrQvtC8MTAwLgYDVQQLDCfQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAxNDAyBgNVBAMMK9Ci0LXRgdGC0L7QstGL0Lkg0KPQpiDQoNCi0JogKNCg0KLQm9Cw0LHRgSmCEAOuzGiaTni0Qi9lUu4FP4MwWQYDVR0fBFIwUDBOoEygSoZIaHR0cDovLzgyLjE5Ni4xNDguNzUvcmEvY2RwLzQxYjJjYzMyOWMzODdmMmRmZDhjODYxNTU4MjM2MjBhNzdmNTJjZmYuY3JsMEoGCCsGAQUFBwEBBD4wPDA6BggrBgEFBQcwAoYuaHR0cDovLzgyLjE5Ni4xNDguNzUvcmEvY2RwL3Rlc3RfY2FfcnRsYWJzLmNlcjA2BgUqhQNkbwQtDCsi0JrRgNC40L_RgtC-0J_RgNC-IENTUCIgKNCy0LXRgNGB0LjRjyAzLjYpMCsGA1UdEAQkMCKADzIwMTUwNDI0MTIyMzAwWoEPMjAxNjA0MjQxMjIzMDBaMB0GA1UdIAQWMBQwCAYGKoUDZHEBMAgGBiqFA2RxAjCB3QYFKoUDZHAEgdMwgdAMKyLQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQIiAo0LLQtdGA0YHQuNGPIDMuNikMUyLQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAgItCa0YDQuNC_0YLQvtCf0YDQviDQo9CmIiDQstC10YDRgdC40LggMS41DCXihJYg0KHQpC8xMjQtMjIzOCDQvtGCIDA0LjEwLjIwMTMg0LMuDCXihJYg0KHQpC8xMjgtMjM1MiDQvtGCIDE1LjA0LjIwMTQg0LMuMAgGBiqFAwICAwNBAEQivzr6bYkYtItTk0ckc6wPuzuadqhNytl-S1yJL3YO_LJXnSRzfexkgb3OuR0Gi3N_fHQgFbb_F5pNJQxx3EUxggG7MIIBtwIBATCCAVYwggFGMRgwFgYFKoUDZAESDTEyMzQ1Njc4OTAxMjMxGjAYBggqhQMDgQMBARIMMDAxMjM0NTY3ODkwMSkwJwYDVQQJDCDQodGD0YnQtdCy0YHQutC40Lkg0LLQsNC7INC0LiAyNjEXMBUGCSqGSIb3DQEJARYIY2FAcnQucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC-0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEkMCIGA1UECgwb0J7QkNCeINCg0L7RgdGC0LXQu9C10LrQvtC8MTAwLgYDVQQLDCfQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAxNDAyBgNVBAMMK9Ci0LXRgdGC0L7QstGL0Lkg0KPQpiDQoNCi0JogKNCg0KLQm9Cw0LHRgSkCChtA4h8AAAAAAQswCgYGKoUDAgIJBQAwCgYGKoUDAgITBQAEQFgC3VYKfII10fFc7b1dF5_em1Or40O4mgNEXpsvwtcsj2KSgcQNlcgxAQsWekJsOmla_5vB5kGDBXV4v-vB9NI&redirect_uri=http%3A%2F%2Fwww-demo1.gosuslugi.ru%2F&scope=openid+http%3A%2F%2Fesia.gosuslugi.ru%2Fusr_inf&response_type=code&state=b5fbf220-5a2e-4771-a9f4-5b3fe2ce2e28×tamp=2015.05.13+18%3A30%3A35+%2B0300&access_type=offline
Моя подпись (с false в generator.generate()) Код:Auth URi: https://esia-portal1.test.gosuslugi.ru/aas/oauth2/ac?client_id=01KK01311&redirect_uri=http%3A%2F%2F10.65.67.13%3A8080%2Fvsopen%2Fesia&scope=http%3A%2F%2Fesia.gosuslugi.ru%2Fusr_inf×tamp=2015.07.13+14%3A51%3A08+%2B0300&state=65992587-d0e8-41b0-beb4-c45c64fd3e5a&access_type=online&response_type=code&client_secret=MIAGCSqGSIb3DQEHAqCAMIACAQExDDAKBgYqhQMCAgkFADCABgkqhkiG9w0BBwEAAKCAMIIJkTCCCUCgAwIBAgIKfrKvCwAAAAAQYjAIBgYqhQMCAgMwggGyMRgwFgYFKoUDZAESDTEwMjMxMDE2NzA0MzcxGjAYBggqhQMDgQMBARIMMDAzMTIzMDc3MTExMSUwIwYJKoZIhvcNAQkBFhZzZXJ2aWNldWNAYmVscmVnaW9uLnJ1MQswCQYDVQQGEwJSVTEgMB4GA1UECQwX0J3QtdC60YDQsNGB0L7QstCwIDktMTUxMzAxBgNVBAgMKjMxINCR0LXQu9Cz0L7RgNC-0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjDEZMBcGA1UEBwwQ0JHQtdC70LPQvtGA0L7QtDFQME4GA1UECgxH0J7Qk9CR0KMg0JHQtdC70LPQvtGA0L7QtNGB0LrQuNC5INC40L3RhNC-0YDQvNCw0YbQuNC-0L3QvdGL0Lkg0YTQvtC90LQxMDAuBgNVBAsMJ9Cj0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDFQME4GA1UEAwxH0KPQpiDQkNC00LzQuNC90LjRgdGC0YDQsNGG0LjQuCDQkdC10LvQs9C-0YDQvtC00YHQutC-0Lkg0L7QsdC70LDRgdGC0LgwHhcNMTQxMTEwMDg1MDAwWhcNMTUxMTEwMDg1MTAwWjCCAYExGDAWBgUqhQNkARINMTEzMzEyMzAwMjEyMTEaMBgGCCqFAwOBAwEBEgwwMDMxMjMzMTY5OTQxIjAgBgkqhkiG9w0BCQEWE2JlbHVub0BiZWxyZWdpb24ucnUxCzAJBgNVBAYTAlJVMTcwNQYDVQQIHi4AMwAxACAEEQQ1BDsEMwQ-BEAEPgQ0BEEEOgQwBE8AIAQ-BDEEOwQwBEEEQgRMMRkwFwYDVQQHHhAEEQQ1BDsEMwQ-BEAEPgQ0MWEwXwYDVQQKHlgEFAQ1BD8EMARABEIEMAQ8BDUEPQRCACAEPgQxBEAEMAQ3BD4EMgQwBD0EOARPACAEEQQ1BDsEMwQ-BEAEPgQ0BEEEOgQ-BDkAIAQ-BDEEOwQwBEEEQgQ4MWEwXwYDVQQDHlgEFAQ1BD8EMARABEIEMAQ8BDUEPQRCACAEPgQxBEAEMAQ3BD4EMgQwBD0EOARPACAEEQQ1BDsEMwQ-BEAEPgQ0BEEEOgQ-BDkAIAQ-BDEEOwQwBEEEQgQ4MGMwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEDQwAEQKbisQR61dNbtsKLLrYKGpKOGkD7m-NGnXxRtQiDB8mD5SUWrxP_UG9TR-UNdHtGrWNVVhw5PCiUzzlS5OSAmEWjggVhMIIFXTAOBgNVHQ8BAf8EBAMCBPAwGQYJKoZIhvcNAQkPBAwwCjAIBgYqhQMCAhUwNwYDVR0lBDAwLgYGKoUDZAICBgcqhQMCAiIZBgcqhQMCAiIGBggrBgEFBQcDAgYIKwYBBQUHAwQwHQYDVR0OBBYEFGofeAtD-AgZuUKfKAc3BrfTX8JtMIIB8wYDVR0jBIIB6jCCAeaAFH22gVr6_kgqmyQcsySrYItGh69goYIBuqSCAbYwggGyMRgwFgYFKoUDZAESDTEwMjMxMDE2NzA0MzcxGjAYBggqhQMDgQMBARIMMDAzMTIzMDc3MTExMSUwIwYJKoZIhvcNAQkBFhZzZXJ2aWNldWNAYmVscmVnaW9uLnJ1MQswCQYDVQQGEwJSVTEgMB4GA1UECQwX0J3QtdC60YDQsNGB0L7QstCwIDktMTUxMzAxBgNVBAgMKjMxINCR0LXQu9Cz0L7RgNC-0LTRgdC60LDRjyDQvtCx0LvQsNGB0YLRjDEZMBcGA1UEBwwQ0JHQtdC70LPQvtGA0L7QtDFQME4GA1UECgxH0J7Qk9CR0KMg0JHQtdC70LPQvtGA0L7QtNGB0LrQuNC5INC40L3RhNC-0YDQvNCw0YbQuNC-0L3QvdGL0Lkg0YTQvtC90LQxMDAuBgNVBAsMJ9Cj0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDFQME4GA1UEAwxH0KPQpiDQkNC00LzQuNC90LjRgdGC0YDQsNGG0LjQuCDQkdC10LvQs9C-0YDQvtC00YHQutC-0Lkg0L7QsdC70LDRgdGC0LiCEEhwrmfjj5GpREU2Xl7ZwykwgbEGA1UdHwSBqTCBpjBSoFCgToZMaHR0cDovL3VjYm8uYmVscmVnaW9uLnJ1L2NhL2NkcC83ZGI2ODE1YWZhZmU0ODJhOWIyNDFjYjMyNGFiNjA4YjQ2ODdhZjYwLmNybDBQoE6gTIZKaHR0cDovL3VjLmJlbHJlZ2lvbi5ydS9jYS9jZHAvN2RiNjgxNWFmYWZlNDgyYTliMjQxY2IzMjRhYjYwOGI0Njg3YWY2MC5jcmwweAYIKwYBBQUHAQEEbDBqMDIGCCsGAQUFBzABhiZodHRwOi8vdWNiby5iZWxyZWdpb24ucnUvb2NzcC9vY3NwLnNyZjA0BggrBgEFBQcwAoYoaHR0cDovL3VjYm8uYmVscmVnaW9uLnJ1L2NhL2NkcC9yb290LmNydDA0BgUqhQNkbwQrDCnQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQICjQstC10YDRgdC40Y8gMy42KTAdBgNVHSAEFjAUMAgGBiqFA2RxATAIBgYqhQNkcQIwKwYDVR0QBCQwIoAPMjAxNDExMTAwODUwMDBagQ8yMDE1MTExMDA4NTAwMFowggEvBgUqhQNkcASCASQwggEgDCnQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQICjQstC10YDRgdC40Y8gMy42KQxS0KPQtNC-0YHRgtC-0LLQtdGA0Y_RjtGJ0LjQuSDRhtC10L3RgtGAICLQmtGA0LjQv9GC0L7Qn9GA0L4g0KPQpiIg0LLQtdGA0YHQuNC4IDEuNQxP0KHQtdGA0YLQuNGE0LjQutCw0YIg0YHQvtC-0YLQstC10YLRgdGC0LLQuNGPIOKEliDQodCkLzEyNC0yMjM4INC-0YIgMDQuMTAuMjAxMwxOQ9C10YDRgtC40YTQuNC60LDRgiDRgdC-0L7RgtCy0LXRgtGB0YLQstC40Y8g4oSWINCh0KQvMTI4LTIzNTEg0L7RgiAxNS4wNC4yMDE0MAgGBiqFAwICAwNBAEcSiLWV6U2fcDGxKbefTUJkrNM-ki6FJFljS_L926vG5so4-2-VJJT4LVluE2EVR9XKvY-L--AP-bDNB0svwIQAADGCApIwggKOAgEBMIIBwjCCAbIxGDAWBgUqhQNkARINMTAyMzEwMTY3MDQzNzEaMBgGCCqFAwOBAwEBEgwwMDMxMjMwNzcxMTExJTAjBgkqhkiG9w0BCQEWFnNlcnZpY2V1Y0BiZWxyZWdpb24ucnUxCzAJBgNVBAYTAlJVMSAwHgYDVQQJDBfQndC10LrRgNCw0YHQvtCy0LAgOS0xNTEzMDEGA1UECAwqMzEg0JHQtdC70LPQvtGA0L7QtNGB0LrQsNGPINC-0LHQu9Cw0YHRgtGMMRkwFwYDVQQHDBDQkdC10LvQs9C-0YDQvtC0MVAwTgYDVQQKDEfQntCT0JHQoyDQkdC10LvQs9C-0YDQvtC00YHQutC40Lkg0LjQvdGE0L7RgNC80LDRhtC40L7QvdC90YvQuSDRhNC-0L3QtDEwMC4GA1UECwwn0KPQtNC-0YHRgtC-0LLQtdGA0Y_RjtGJ0LjQuSDRhtC10L3RgtGAMVAwTgYDVQQDDEfQo9CmINCQ0LTQvNC40L3QuNGB0YLRgNCw0YbQuNC4INCR0LXQu9Cz0L7RgNC-0LTRgdC60L7QuSDQvtCx0LvQsNGB0YLQuAIKfrKvCwAAAAAQYjAKBgYqhQMCAgkFAKBpMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE1MDcxMzExNTExMFowLwYJKoZIhvcNAQkEMSIEIPCBHq4wcoG12uvM7FO-TtSd5ZKsZD5Y46zDAFsHd1fRMAoGBiqFAwICYgUABEBnTcg76oT-ggX8ocWDwqLAJKc-HgzH8bvr4T9YKB47PvBvIjS1WAyu0cpDrCFv0kkzHJoKfbMz_WYI6e4x_LdWAAAAAAAA
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Автор: JackTheCat ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) четырех параметров HTTP–запроса: scope, timestamp, clientId, state (без разделителей) Вы их подписываете? Сравнивали asn-декодером подписи? На счет записи ошибаюсь, это образец. Отредактировано пользователем 13 июля 2015 г. 16:39:15(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 08.07.2015(UTC) Сообщений: 4 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 08.09.2014(UTC) Сообщений: 12 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Люди, подскажите пожалуйста как можно в php реализовать подпись запроса для передачи в ЕСИА по аналогии с Java?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close