Добрый день, пытаюсь создать отсоединенную подпись документа используя его хеш с помощью NCALayer.
Для этого воспользовался модулем Common Bundle, а конкретно методом createCAdESFromBase64Hash.
Для части хешей всё проходит нормально, подпись создается, но нашелся хеш на котором происходит ошибка из заголовка.
Пример запроса на который падает ошибка:
{"module":"kz.gov.pki.knca.commonUtils","method":"createCAdESFromBase64Hash","args":["PKCS12","SIGNATURE","k2+PLmc/DoSTdSCVilCzgpPVv84gaYgyo9EmN0+wp4U="]}
В логах при этом:
2019-03-19 13:44:10 ERROR [kz.gov.pki.api.layer.service.LogWriter] - [kz.gov.pki.osgi.layer.common]: DEF length 111 object truncated by 81:
java.lang.IllegalStateException: DEF length 111 object truncated by 81
at kz.gov.pki.kalkan.asn1.BERTaggedObjectParser.getDERObject(BERTaggedObjectParser.java:120)
at kz.gov.pki.kalkan.asn1.ASN1InputStream.buildObject(ASN1InputStream.java:123)
at kz.gov.pki.kalkan.asn1.ASN1InputStream.readObject(ASN1InputStream.java:242)
at kz.gov.pki.kalkan.jce.provider.cms.CMSUtils.readContentInfo(CMSUtils.java:123)
at kz.gov.pki.kalkan.jce.provider.cms.CMSUtils.readContentInfo(CMSUtils.java:48)
at kz.gov.pki.kalkan.jce.provider.cms.CMSSignedData.<init>(CMSSignedData.java:86)
at kz.gov.pki.provider.utils.CMSUtil.parseAsCMS(CMSUtil.java:52)
at kz.gov.pki.provider.utils.CMSUtil.createCAdES(CMSUtil.java:261)
at kz.gov.pki.provider.utils.CMSUtil.createCAdES(CMSUtil.java:300)
at kz.gov.pki.knca.CommonUtils.createCAdESFromBase64Hash(CommonUtils.java:422)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at kz.gov.pki.knca.NCALayerCommonActivator.lambda$getModuleService$2(NCALayerCommonActivator.java:133)
at kz.gov.pki.layer.NCAWebSocketServer$NCAWebSocket.onMessage(NCAWebSocketServer.java:125)
at fi.iki.elonen.NanoWSD$WebSocket.handleWebsocketFrame(NanoWSD.java:230)
at fi.iki.elonen.NanoWSD$WebSocket.readWebsocket(NanoWSD.java:248)
at fi.iki.elonen.NanoWSD$WebSocket.access$200(NanoWSD.java:65)
at fi.iki.elonen.NanoWSD$WebSocket$1.send(NanoWSD.java:88)
at fi.iki.elonen.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:957)
at fi.iki.elonen.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:192)
at java.lang.Thread.run(Unknown Source)
Версии модулей самые последние:
PKI.GOV.KZ JCE Provider - 0.5.0
Utility classes for KNCA-provider - 0.7.2
Common Bundle - 0.3.3
Судя по стеку проблема тут -> kz.gov.pki.kalkan.jce.provider.cms.CMSUtils.readContentInfo
Там перехватываются и оборачиваются в CMSException ошибки типов IOException, ClassCastException, IllegalArgumentException, но не IllegalStateException, а в kz.gov.pki.provider.utils.CMSUtil.createCAdES ожидается что может упасть только CMSException.