Статус: Участник
Группы: Участники
Зарегистрирован: 05.08.2021(UTC) Сообщений: 16 Откуда: Воронеж Сказал(а) «Спасибо»: 1 раз
|
Здравствуйте. Возник вопрос : как корректно сохранить сохранить в файл результа подписи даных. Подпись осуществляется так: Код:
public byte[] getSign (ContainerAdapter _containerAdapter, String _storeAlias, String _certificateAlias, byte[] _dataB, boolean _askPin, String _pin ) {
try {
//Базовый обьект
SignData signData = new SignData(_containerAdapter, false) {
@Override
public void getResult(FinalListener listener) throws Exception {
}
};
//Указываем хранилище
KeyStoreType.init(context);
KeyStoreType.saveCurrentType(_storeAlias);
//Загрузка ключа и сертификата.
String keyStoreType = KeyStoreType.currentType();
String alisa = _containerAdapter.getClientAlias();
char[] password = _containerAdapter.getClientPassword();
if(!_askPin) password = _pin.toCharArray();
signData.load(_askPin, keyStoreType, alisa, password);
//Проверяем на приватность
if (signData.getPrivateKey() == null) {
return null;
}
//Определяем алгоритмы
KeyStore keyStore = KeyStore.getInstance(_storeAlias, JCSP.PROVIDER_NAME);
keyStore.load(null, null);
Certificate certificate = keyStore.getCertificate(_certificateAlias);
String keyAlg = certificate.getPublicKey().getAlgorithm();
String sigAlg = getSignatureAlgByKeyAlg(keyAlg);
//Инициализация подписи
Signature signature = Signature.getInstance(sigAlg, JCSP.PROVIDER_NAME);
signature.initSign(signData.getPrivateKey());
signature.update(_dataB);
// Формируем подпись.
byte[] sign = signature.sign();
//Проверяем подпись
//cAdESSignature = CAdESSignature(sign, hashData.toByteArray(), cAdESType, true)
//cAdESSignature.verify(chain)
return sign;
}catch (Exception ew){
return null;
}
}
В результате получаем подпись как byte[]. Как следует правильно сохранить результат в файл, дабы потом осуществить верификацию? Отредактировано пользователем 13 сентября 2021 г. 10:41:37(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Здравствуйте. Сохранить можно так, как вам удобно - в виде бинарного файла (asn1) или сконвертировать в base64 и сохранить как строку, но в последнем случае перед проверкой надо будет сконвертировать обратно - из base64 в asn1. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close