Статус: Новичок
Группы: Участники
Зарегистрирован: 15.02.2024(UTC) Сообщений: 1
|
Добрый день! Пытаюсь наладить взаимодействие платежным шлюзом с Билайна, уперся в формирование ЭЦП. В спецификации Билайна написано, что ЭСП формируется по алгоритму ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012,и потом должна быть закодирована в base64. Написал код, который вызывает сryptcp и формирует подпись, но на стороне Билайна подпись не проходит. В чем может быть причина? Может я как то не так формирую подпись? Код ниже. Пример запрос из спецификации билайн: Код:<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://payment.beepayxp.jetinfosoft.ru">
<soap:Header>
<digitalSignature>
<signature>uL45S07uVqJ3a8dJ68AwhvWyC4rthbfPFsKcJHEDo3DvV6dhv2ocY78S3xrJRJsfl6ICawK4vwjW3w8/24l5xQ==</signature>
</digitalSignature>
</soap:Header>
<soap:Body>
<!--Подписываемая и проверяемая часть-->
</soap:Body>
</soap:Envelope>
Код для формирования подписи: Код:func (o *Signer) Sign(file []byte, certHash string) ([]byte, error) {
stdin := bytes.NewBuffer(file)
stderr := &bytes.Buffer{}
name := uuid.New()
infileName := name.String()
outfileName := infileName + ".sig"
defer func() { _ = os.Remove(infileName) }()
defer func() { _ = os.Remove(outfileName) }()
err := os.WriteFile(infileName, file, 0o777)
if err != nil {
return nil, err
}
cmd := exec.Command(
o.CryptcpPath,
"-sign",
"-thumbprint", certHash,
"-der",
"-nochain",
"-hashAlg", "1.2.643.7.1.1.2.2",
"-pin", o.Pin,
infileName,
outfileName,
) // /opt/cprocsp/bin/cryptcp -sign -pin admin -nochain -der -thumbprint <certHash> test.xml test.sig
cmd.Stdin = stdin
cmd.Stderr = stderr
err = cmd.Run()
if err != nil {
return nil, err
}
signedFileBytes, err := os.ReadFile(outfileName)
if err != nil {
return nil, err
}
return signedFileBytes, nil
}
Отредактировано пользователем 16 февраля 2024 г. 10:46:36(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close