Статус: Участник
Группы: Участники
Зарегистрирован: 17.02.2020(UTC) Сообщений: 25
Сказал(а) «Спасибо»: 12 раз
|
Здравствуйте. На Debian настроил серверную версию с тестовым сертификатом. Все отрабатывает. test_extension.php отрабатывает отлично. На фронте подписи тоже работают. Действия: 1. Даю некую строку - например 'test12345' 2. Фронт подписывает и отсылает совместную подпись signedData = '...NCQLCDQvtGELiAxMDI2MT....' и sertificateInfo(js) thumbprint 3. Я проверяю на php $data = base64_encode('test12345'); $SignedData = new \CPSignedData(); $SignedData->set_ContentEncoding(BASE64_TO_BINARY); $SignedData->set_Content($data); $check = $SignedData->VerifyCades($signature, 0x01,1);
Если хеш правильный то все ок. Исключений не вызывается Вопрос вот в чем: Можно ли получить thumbprint с signedData или как мне проверить signedData что он подписан именно этим thumbprint
Заранее спасибо
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,383 Сказал «Спасибо»: 53 раз Поблагодарили: 776 раз в 718 постах
|
Автор: pooopsss Здравствуйте. На Debian настроил серверную версию с тестовым сертификатом. Все отрабатывает. test_extension.php отрабатывает отлично. На фронте подписи тоже работают. Действия: 1. Даю некую строку - например 'test12345' 2. Фронт подписывает и отсылает совместную подпись signedData = '...NCQLCDQvtGELiAxMDI2MT....' и sertificateInfo(js) thumbprint 3. Я проверяю на php $data = base64_encode('test12345'); $SignedData = new \CPSignedData(); $SignedData->set_ContentEncoding(BASE64_TO_BINARY); $SignedData->set_Content($data); $check = $SignedData->VerifyCades($signature, 0x01,1);
Если хеш правильный то все ок. Исключений не вызывается Вопрос вот в чем: Можно ли получить thumbprint с signedData или как мне проверить signedData что он подписан именно этим thumbprint
Заранее спасибо
Здравствуйте. Метод get_Signers() объекта CPSignedData. Метод get_Item() объекта CPSigners. Метод get_Certificate() объекта CPSigner. Метод get_Thumbprint() объекта CPCertificate. Для справки. |
|
1 пользователь поблагодарил Александр Лавник за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.02.2020(UTC) Сообщений: 25
Сказал(а) «Спасибо»: 12 раз
|
Автор: Александр Лавник Автор: pooopsss Здравствуйте. На Debian настроил серверную версию с тестовым сертификатом. Все отрабатывает. test_extension.php отрабатывает отлично. На фронте подписи тоже работают. Действия: 1. Даю некую строку - например 'test12345' 2. Фронт подписывает и отсылает совместную подпись signedData = '...NCQLCDQvtGELiAxMDI2MT....' и sertificateInfo(js) thumbprint 3. Я проверяю на php $data = base64_encode('test12345'); $SignedData = new \CPSignedData(); $SignedData->set_ContentEncoding(BASE64_TO_BINARY); $SignedData->set_Content($data); $check = $SignedData->VerifyCades($signature, 0x01,1);
Если хеш правильный то все ок. Исключений не вызывается Вопрос вот в чем: Можно ли получить thumbprint с signedData или как мне проверить signedData что он подписан именно этим thumbprint
Заранее спасибо
Здравствуйте. Метод get_Signers() объекта CPSignedData. Метод get_Item() объекта CPSigners. Метод get_Certificate() объекта CPSigner. Метод get_Thumbprint() объекта CPCertificate. Для справки. Спасибо огромное заработало. Вот пример кому нужно. И все это обрамить в try/catch $signObject = $SignedData->get_Signers(); $sObj = $signObject->get_Item(1); $cert = $sObj->get_Certificate(); $issuerName = $cert->get_IssuerName(); $fromDate = $cert->get_ValidFromDate(); $toDate = $cert->get_ValidToDate(); $serialNumber = $cert->get_SerialNumber(); $subjectName = $cert->get_SubjectName(); $thumbPrint = $cert->get_Thumbprint();
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.02.2020(UTC) Сообщений: 25
Сказал(а) «Спасибо»: 12 раз
|
Автор: pooopsss Автор: Александр Лавник Автор: pooopsss Здравствуйте. На Debian настроил серверную версию с тестовым сертификатом. Все отрабатывает. test_extension.php отрабатывает отлично. На фронте подписи тоже работают. Действия: 1. Даю некую строку - например 'test12345' 2. Фронт подписывает и отсылает совместную подпись signedData = '...NCQLCDQvtGELiAxMDI2MT....' и sertificateInfo(js) thumbprint 3. Я проверяю на php $data = base64_encode('test12345'); $SignedData = new \CPSignedData(); $SignedData->set_ContentEncoding(BASE64_TO_BINARY); $SignedData->set_Content($data); $check = $SignedData->VerifyCades($signature, 0x01,1);
Если хеш правильный то все ок. Исключений не вызывается Вопрос вот в чем: Можно ли получить thumbprint с signedData или как мне проверить signedData что он подписан именно этим thumbprint
Заранее спасибо
Здравствуйте. Метод get_Signers() объекта CPSignedData. Метод get_Item() объекта CPSigners. Метод get_Certificate() объекта CPSigner. Метод get_Thumbprint() объекта CPCertificate. Для справки. Спасибо огромное заработало. Вот пример кому нужно. И все это обрамить в try/catch $signObject = $SignedData->get_Signers(); $sObj = $signObject->get_Item(1); $cert = $sObj->get_Certificate(); $issuerName = $cert->get_IssuerName(); $fromDate = $cert->get_ValidFromDate(); $toDate = $cert->get_ValidToDate(); $serialNumber = $cert->get_SerialNumber(); $subjectName = $cert->get_SubjectName(); $thumbPrint = $cert->get_Thumbprint(); И закончив данный вопрос - thumbprint остается навсегда у человека или с обновлением ключа он тоже меняется. Т.к. есть fromDate то означает он закончится. Но если он продлит или купит по thumbprint поменяется или нет. Заранее спасибо
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
thumbprint - это sha1 от сертификата, всегда будет разным. |
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.02.2020(UTC) Сообщений: 25
Сказал(а) «Спасибо»: 12 раз
|
Автор: Андрей * thumbprint - это sha1 от сертификата, всегда будет разным. А что тогда хранить для user для авторизации - serial, inn, snils??? Отредактировано пользователем 18 февраля 2020 г. 10:47:46(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Автор: pooopsss Автор: Андрей * thumbprint - это sha1 от сертификата, всегда будет разным. А что тогда хранить для user для авторизации - serial, inn, snils??? так его и хранить, а потом обеспечивать смену на новый, когда у него появится новый сертификат или добавлять еще один со ссылкой на запись о пользователе... пара таблиц: 1) пользователи (id user, данные о пользователе) 2) сертификаты (thumbprint, id user, ... другие важные реквизиты, например, период действия, серийный номер, УЦ, статус сертификата) |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.02.2020(UTC) Сообщений: 25
Сказал(а) «Спасибо»: 12 раз
|
Автор: Андрей * Автор: pooopsss Автор: Андрей * thumbprint - это sha1 от сертификата, всегда будет разным. А что тогда хранить для user для авторизации - serial, inn, snils??? так его и хранить, а потом обеспечивать смену на новый, когда у него появится новый сертификат или добавлять еще один со ссылкой на запись о пользователе... пара таблиц: 1) пользователи (id user, данные о пользователе) 2) сертификаты (thumbprint, id user, ... другие важные реквизиты, например, период действия, серийный номер, УЦ, статус сертификата) Да. Это понятно как хранить но если пользователь пришел с новым ключом а второго нет и мы не знаем пользователь он еще или нет так как не авторизирован. То новый ключ никак не привяжется. Я так понимаю ИНН и СНИЛС есть всегда. ?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Автор: pooopsss Автор: Андрей * Автор: pooopsss Автор: Андрей * thumbprint - это sha1 от сертификата, всегда будет разным. А что тогда хранить для user для авторизации - serial, inn, snils??? так его и хранить, а потом обеспечивать смену на новый, когда у него появится новый сертификат или добавлять еще один со ссылкой на запись о пользователе... пара таблиц: 1) пользователи (id user, данные о пользователе) 2) сертификаты (thumbprint, id user, ... другие важные реквизиты, например, период действия, серийный номер, УЦ, статус сертификата) Да. Это понятно как хранить но если пользователь пришел с новым ключом а второго нет и мы не знаем пользователь он еще или нет так как не авторизирован. То новый ключ никак не привяжется. Я так понимаю ИНН и СНИЛС есть всегда. ? реализовать процесс регистрации (с участием человека (просмотр сведений\одобрение\отказ) или в авторежиме(проверять сертификат\уц\извлекать сведения\связывать данные в ИС ...)) |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close