Пытаюсь подписать данные подписью CAdES_BES в соответствии с документацией на JCP.
CAdESSignature signature = new CAdESSignature(false);
signature.addSigner(
JCP.PROVIDER_NAME, JCP.GOST_DIGEST_OID, JCP.GOST_EL_DH_OID, privateKey, certificateChain,
CAdESType.CAdES_BES, null, false
);
byte[] input = data.getBytes(StandardCharsets.UTF_8);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
signature.open(baos);
signature.update(input);
signature.close();
baos.close();
byte[] output = baos.toByteArray();
В результате получаю подпись в base64 длиной 1397.
MIAGCSqGSIb3DQEHAqCAMIACAQExDDAKBgYqhQMCAgkFADCABgkqhkiG9w0BBwGggCSABB5QREZDRFdER05MR0NQTVNUV0lPWlpWSENLUFJLUEcAAAAAAAAxggOzMIIDrwIBATCCAVQwggE+MTcwNQYDVQQJDC7Qv9C10YDQtdGD0LvQvtC6INCi0LXRgNC10L3QuNC90YHQutC40LksINC0LiA2MRgwFgYFKoUDZAESDTEwMjQwMDE0MzQwNDkxGjAYBggqhQMDgQMBARIMMDA0MDI5MDE3OTgxMQswCQYDVQQGEwJSVTEVMBMGA1UEBwwM0JrQsNC70YPQs9CwMS0wKwYDVQQIDCQ0MCDQmtCw0LvRg9C20YHQutCw0Y8g0L7QsdC70LDRgdGC0YwxIDAeBgkqhkiG9w0BCQEWEWNhQGFzdHJhbG5hbG9nLnJ1MSswKQYDVQQKDCLQl9CQ0J4gItCa0JDQm9Cj0JPQkCDQkNCh0KLQoNCQ0JsiMSswKQYDVQQDDCLQl9CQ0J4gItCa0JDQm9Cj0JPQkCDQkNCh0KLQoNCQ0JsiAhAB1EUrD0uZcAAARq4DQQACMAoGBiqFAwICCQUAoIIB+DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMC8GCSqGSIb3DQEJBDEiBCC24NYiDHjiRBEMINZ1VkkmGxgXK5q2H0L+jVNq4OfmUDCCAakGCyqGSIb3DQEJEAIvMYIBmDCCAZQwggGQMIIBjDAIBgYqhQMCAgkEIALhNlK5s90wGqLwzghU/R60uBwoLv1J0/4ftnyo77HEMIIBXDCCAUakggFCMIIBPjE3MDUGA1UECQwu0L/QtdGA0LXRg9C70L7QuiDQotC10YDQtdC90LjQvdGB0LrQuNC5LCDQtC4gNjEYMBYGBSqFA2QBEg0xMDI0MDAxNDM0MDQ5MRowGAYIKoUDA4EDAQESDDAwNDAyOTAxNzk4MTELMAkGA1UEBhMCUlUxFTATBgNVBAcMDNCa0LDQu9GD0LPQsDEtMCsGA1UECAwkNDAg0JrQsNC70YPQttGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMMSAwHgYJKoZIhvcNAQkBFhFjYUBhc3RyYWxuYWxvZy5ydTErMCkGA1UECgwi0JfQkNCeICLQmtCQ0JvQo9CT0JAg0JDQodCi0KDQkNCbIjErMCkGA1UEAwwi0JfQkNCeICLQmtCQ0JvQo9CT0JAg0JDQodCi0KDQkNCbIgIQAdRFKw9LmXAAAEauA0EAAjAIBgYqhQMCAmIEQPqdekvptqldsiv6cgY4AVrAVsB8uL7SaeQm528Ky3ZIgF1HWPCG+WT/8fRee5O0q/2QMdzf5khh+yOyGs0hmbIAAAAAAAA=
В подписи нет сертификата. Это видно в бинарном виде и пример из JCP CAdES.ShowCAdESGUI выдает ошибку.
[img=http://joxi.ru/a2X4yJLhw43J82]ошибка нет сертификата[/img]
Сервис ismp.crpt.ru, с которым мы интегрируемся, выдает аналогичную ошибку.
При этом, если подписываю теже данные через демо-сервис
https://www.cryptopro.ru...ge/cades_bes_sample.html с использованием КриптоПро CSP, то формируется подпись в base64 длиной 8661. В ней все сертификаты есть. Она успешно отображается в ShowCAdESGUI. И она успешно проходит проверку в ismp.crpt.ru.
Подскажите пожалуйста, что сделать, чтобы в JCP получить подпись с сертификатами?
Пробовал на jcp-2.0.40035 и jcp-2.0.40132-A результат одинаковый. Пробовал подписать CAdES_A и другие - их ShowCAdESGUI отображает, но ismp.crpt.ru выдает ошибки, он рассчитан только на CAdES_BES.