Статус: Новичок
Группы: Участники
Зарегистрирован: 02.08.2019(UTC) Сообщений: 3 
|
При попытке подписать файл с помощью тестового примера выдается ошибка в КриптоПро CSP ANDROID
Код:
2019-08-06 15:14:09.386 8977-9982/ru.cprocsp.ACSP E/ACSP: Error building certification path for OID.1.2.643.100.3=#120B3135373030303030303030, OID.1.2.643.100.1=#120D31303236333030303030303030, OID.1.2.643.3.131.1.1=#120C303036333030303030303030, GIVENNAME=Test Test, SURNAME=Test, EMAILADDRESS=test@test.com, L=Test, ST=?? ?????????, C=RU, O=Test, CN=Test: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Error building certification path for OID.1.2.643.100.3=#120B3135373030303030303030, OID.1.2.643.100.1=#120D31303236333030303030303030, OID.1.2.643.3.131.1.1=#120C303036333030303030303030, GIVENNAME=Test Test, SURNAME=Test, EMAILADDRESS=test@test.com, L=Test, ST=?? ?????????, C=RU, O=Test, CN=Test: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; error codes: [33] 'PKIX failure: invalid parameters of certificate',
at ru.CryptoPro.CAdES.b.addSigner(Unknown Source:196)
at ru.cprocsp.ACSP.management.signature.SignatureActivity$SignatureTask.doInBackground(Unknown Source:201)
at ru.cprocsp.ACSP.management.signature.SignatureActivity$SignatureTask.doInBackground(Unknown Source:2)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: Error building certification path for OID.1.2.643.100.3=#120B3135373030303030303030, OID.1.2.643.100.1=#120D31303236333030303030303030, OID.1.2.643.3.131.1.1=#120C303036333030303030303030, GIVENNAME=Test Test, SURNAME=Test, EMAILADDRESS=test@test.com, L=Test, ST=?? ???????????, C=RU, O=Test, CN=Test: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; error codes: [33] 'PKIX failure: invalid parameters of certificate',
at ru.CryptoPro.a.a.e.a(Unknown Source:343)
at ru.CryptoPro.a.a.e.a(Unknown Source:84)
at ru.CryptoPro.CAdES.b.addSigner(Unknown Source:251)
Пример:
Код:
Logger.clear();
logCalling(INTENT_NAME_SIGN_DATA);
final Intent intent = new Intent(INTENT_NAME_SIGN_DATA);
// 1. Алиас контейнера.
final String containerAlias = String.valueOf(etBuildContainerAlias.getText());
// Если не передать, то будет предложено указать в самой activity.
if (containerAlias != null && !containerAlias.isEmpty()) {
intent.putExtra("containerAlias", containerAlias); // проверка на поиск
} // if
// 2. Совмещенная ли подпись.
final boolean attached = !cbDetached.isChecked();
// Если не передать, то будет предложено указать в самой activity.
intent.putExtra("attached", attached); // проверка на attached
// 3. Данные для подписи.
final String dataToSign = String.valueOf(etDataToSign.getText());
// Если не передать, то будет предложено указать файл
// с данными в самой activity.
if (dataToSign != null && !dataToSign.isEmpty()) {
intent.putExtra("data", dataToSign.getBytes()); // проверка на передачу данных
} // if
// 4. Тип подписи (CAdES-BES, CAdES-T и
// CAdES-X Long Type 1).
int cAdESType = CAdESType.CAdES_BES;
switch (spCAdESType.getSelectedItemPosition()) {
case 1: cAdESType = CAdESType.CAdES_T; break;
case 2: cAdESType = CAdESType.CAdES_X_Long_Type_1; break;
} // switch
// Если не передать, то будет предложено указать в самой activity.
intent.putExtra("type", cAdESType);
/* Проверка CRL
InputStream crl = ACSPIntentActivity.this.getResources().openRawResource(R.raw.certcrl);
ByteArrayOutputStream crlStream = new ByteArrayOutputStream();
try {
final int size = 1024 * 1024; // Kb
byte[] buffer = new byte[size];
int read;
while ((read = crl.read(buffer, 0, size)) > 0) {
crlStream.write(buffer, 0, read);
} // while
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
try {
crl.close();
} catch (IOException e) {
// ignore
}
try {
crlStream.close();
} catch (IOException e) {
// ignore
}
}
byte[] crlContent = crlStream.toByteArray();
intent.putExtra("crl_1", crlContent);
*/
startActivityForResult(intent, INTENT_ID_SIGN_DATA);
Отредактировано пользователем 6 августа 2019 г. 14:53:21(UTC)
| Причина: Не указана
|