Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline saaremaa  
#11 Оставлено : 4 сентября 2023 г. 22:15:06(UTC)
saaremaa

Статус: Новичок

Группы: Участники
Зарегистрирован: 06.07.2022(UTC)
Сообщений: 6
Российская Федерация

1. Сформировали строку вида:
Цитата:
TEST-SZRfullname mobile email birthdate citizenship id_doc birthplace addresses2023.09.04 21:07:21 +02005921c136-9083-c30b-e36a-af453bb651f8https://www.site.net/personal

2. Подписали во внешнем скрипте:
Цитата:

echo off
set arg1=%1
csptest -keys -cont "\\.\Aladdin Token JC 0\56f0f720-d0c8-4c0e-b9a2-74f007fdb4a8" -password xxxxxx -sign GOST12_256 -in k:/sign/%arg1% -out k:/sign/%arg1%.sig -keytype exchange

3. Полученный файл *.sig прочитали и перевернули функцией:
Цитата:

func reverse(d []byte) []byte {
for i, j := 0, len(d)-1; i < j; i, j = i+1, j-1 {
d[i], d[j] = d[j], d[i]
}
return d
}


4. Полученный результат после переворота перевели в base64.URLEncoding
Цитата:

clientSecret := base64.URLEncoding.EncodeToString(dat)

5. Сформировали запрос на получение ссылки. Получили и перешли по ссылке - результат:
Цитата:
/?error_description=ESIA-007053%3A+OAuthErrorEnum.clientSecretWrong&state=A

Отредактировано пользователем 4 сентября 2023 г. 22:18:02(UTC)  | Причина: Не указана

Offline saaremaa  
#12 Оставлено : 4 сентября 2023 г. 22:37:52(UTC)
saaremaa

Статус: Новичок

Группы: Участники
Зарегистрирован: 06.07.2022(UTC)
Сообщений: 6
Российская Федерация

Все получилось. Кусок функции прилагаю.
Цитата:



func (a *Controllers) GetClientSecret (c echo.Context) error {

rErr := &models.DefaultResponse{}

reqState := util.GetUUID()
reqTime := util.GetData()
reqScopes := strings.ReplaceAll(a.Config.ESIA_SCOPES, ",", " ")

message := fmt.Sprintf("%s%s%s%s%s",
a.Config.ESIA_CLIENT_ID,
reqScopes,
reqTime,
reqState,
a.Config.ESIA_REDIRECT_URI,
)

err := os.WriteFile("k:/sign/"+reqState, []byte(message), 0644)
if err != nil {
rErr.Error = err
return c.JSON(http.StatusForbidden, &rErr)
}

cmd := exec.Command("k:/sign/sign.cmd", reqState, ">", "k:/sign/sign_log.txt")

a.Logger.Infof("k:/sign/sign.cmd %s", reqState)
err = cmd.Run()

if err != nil {
rErr.Error = err
return c.JSON(http.StatusForbidden, &rErr)
}

dat, err := os.ReadFile("k:/sign/" + reqState + ".sig")

if err != nil {
rErr.Error = err
return c.JSON(http.StatusForbidden, &rErr)
}

clientSecret := base64.URLEncoding.EncodeToString(reverse(dat))

return c.JSON(http.StatusOK, &clientSecret )
}



k:/sign/sign.cmd
Цитата:

echo off
set arg1=%1

csptest -keys -cont "\\.\Aladdin Token JC 0\XXXXXX-d0c8-4c0e-XXX-74f007fdb4a8" -password XXXXX-sign GOST12_256 -in k:/sign/%arg1% -out k:/sign/%arg1%.sig -keytype exchange
Offline V Т  
#13 Оставлено : 20 сентября 2023 г. 11:37:18(UTC)
V Т

Статус: Новичок

Группы: Участники
Зарегистрирован: 19.09.2023(UTC)
Сообщений: 8

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 1 раз в 1 постах
Автор: Андрей * Перейти к цитате
Автор: saaremaa Перейти к цитате
Коллеги, поделитесь решением. Как подписать через КриптоПро строку client_secret для получения авторизационного кода через https://esia-portal1.tes...lugi.ru/aas/oauth2/v2/ac ???

По возможности примерами к командной строке. Если есть кусок кода на Golang - это просто будет чудесно.

Все что выше перепробовали - получаем ошибку ESIA-007053.

При этом самописное решение работает, но использовать его нельзя в боевой системе.


а этот ответ с примером команды уже проверили?


Проверял этот способ. У меня он не заработал. Описал все шаги в отдельной теме. https://www.cryptopro.ru...aspx?g=posts&t=22416
Offline Leximist  
#14 Оставлено : 14 февраля 2024 г. 1:01:21(UTC)
Leximist

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.02.2024(UTC)
Сообщений: 2
Российская Федерация
Откуда: Москва

Пожалуйста, посмотрите мое сообщение в другой ветке: https://www.cryptopro.ru...&m=145597#post145597
У меня получилось организовать работу со второй версией (v2/ac) на Java с использованием Крипто Про JCP.
Надеюсь, моя помощь будет полезной для всех, кто попадает на этот форум в поисках ответа.
Offline epermyakov  
#15 Оставлено : 7 марта 2024 г. 16:33:00(UTC)
epermyakov

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.02.2024(UTC)
Сообщений: 7
Российская Федерация
Откуда: Пермский край

Сказал(а) «Спасибо»: 1 раз
Добрый день!

Подскажите, а есть ли рабочие примеры со второй версией (v2/ac) для python?
Offline dp007yandex  
#16 Оставлено : 17 апреля 2024 г. 13:09:21(UTC)
dp007yandex

Статус: Новичок

Группы: Участники
Зарегистрирован: 06.10.2016(UTC)
Сообщений: 3
Российская Федерация
Откуда: Уфа

Сказал(а) «Спасибо»: 1 раз
Автор: epermyakov Перейти к цитате
Добрый день!

Подскажите, а есть ли рабочие примеры со второй версией (v2/ac) для python?


https://habr.com/ru/articles/793028/

Но подпись для старой версии работает, а для второй почему-то нет(

Отредактировано пользователем 17 апреля 2024 г. 16:49:11(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.