Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.08.2022(UTC) Сообщений: 49 Откуда: Спб
|
Имеется такой рабочий код на C#: Код: var contentBytes = Encoding.UTF8.GetBytes(Guid.NewGuid().ToString());
var st1 = _certificate.ToString(true);
var st2 = _certificate.ToString(false);
var signedCms = new SignedCms(new ContentInfo(contentBytes), false);
var algoName = _certificate.GetKeyAlgorithm();
signedCms.ComputeSignature(new CmsSigner(_certificate), true);
var cmsBytes = signedCms.Encode();
var cmsStr = Convert.ToBase64String(cmsBytes);
Как сделать аналогичное вычисление на Java? Следует ли использовать класс Signature. как ниже: Код: Signature signer = Signature.getInstance(signAlgName);
signer.initSign(privateKey);
signer.update(msg.getBytes());
result = signer.sign();
Или следует использовать класс CAdESSignature: Код:CAdESSignature cAdESSignature = new CAdESSignature(true);
CollectionStore store = new CollectionStore(getCertHolderList(chain));
cAdESSignature.setCertificateStore(store);
cAdESSignature.addSigner(JCP.PROVIDER_NAME, null,
GOST_EL_2012_256_NAME, privateKey, chain, CAdESType.CAdES_BES, null, false);
cAdESSignature.open(signatureStream);
cAdESSignature.update(data);
cAdESSignature.close();
Какой алгоритм следует использовать, если в C# коде имя алгоритма было "1.2.643.7.1.1.1.1"? Заранее спасибо За любой конструктивный ответ
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close