Подписание с помощью xmlsec

Кажется, я не могу заставить работать какой-либо вызов знака xmlsec1; Я попробовал несколько сценариев сейчас, и лучшее, что я могу придумать, это следующее сообщение об ошибке:

root@sbe:/srv/jarsigner-keystore# xmlsec1 sign --privkey-pem MEDELEXIS_SWD_SRV.p12.key.pem unsignedTemplate.xml 
func=xmlSecOpenSSLDsaSha1EvpSign:file=signatures.c:line=639:obj=unknown:subj=unknown:error=11:invalid size:size(r)=32 or size(s)=32 > 20
func=xmlSecOpenSSLEvpSignatureExecute:file=signatures.c:line=491:obj=dsa-sha1:subj=EVP_SignFinal:error=4:crypto library function failed: 
func=xmlSecTransformDefaultPushBin:file=transforms.c:line=2207:obj=dsa-sha1:subj=xmlSecTransformExecute:error=1:xmlsec library function failed:final=1
func=xmlSecTransformIOBufferClose:file=transforms.c:line=2891:obj=dsa-sha1:subj=xmlSecTransformPushBin:error=1:xmlsec library function failed: 
func=xmlSecTransformC14NPushXml:file=c14n.c:line=279:obj=exc-c14n:subj=xmlOutputBufferClose:error=5:libxml2 library function failed: 
func=xmlSecTransformCtxXmlExecute:file=transforms.c:line=1236:obj=unknown:subj=xmlSecTransformPushXml:error=1:xmlsec library function failed:transform=exc-c14n
func=xmlSecDSigCtxProcessSignatureNode:file=xmldsig.c:line=614:obj=unknown:subj=xmlSecTransformCtxXmlExecute:error=1:xmlsec library function failed: 
func=xmlSecDSigCtxSign:file=xmldsig.c:line=303:obj=unknown:subj=xmlSecDSigCtxSigantureProcessNode:error=1:xmlsec library function failed: 
Error: signature failed 
Error: failed to sign file "unsignedTemplate.xml"

Я понятия не имею, что такое неверный размер: размер (r) = 32 или размер (s) = 32 > 20?! Я пробовал несколько комбинаций ключей с pkcs12, конвертируя в pem, der, где каждый раз, когда вышеупомянутая ошибка - лучшее, что я могу получить. Исходный сертификат был создан с использованием gnomint, поэтому я думаю, что это должно быть правильно!

Единственное, чего не хватает, так как я использую xmlsec 1.2.18, - это попытаться скомпилировать 1.2.19 с более новым openssl ... но через несколько часов это просто вызывает новые вопросы, которые нужно было бы задать в stackoverflow!

Любая помощь приветствуется!


person col.panic    schedule 08.11.2013    source источник


Ответы (1)


Проблема возникает только с ключами DSA размером >=2048 бит! Так, например. следующее терпит неудачу

openssl dsaparam 2048 > dsaparam 
openssl gendsa -out keydsa.pem dsaparam
xmlsec1 sign --output doc-signed-x509.xml --privkey-pem keydsa.pem unsigned.xml

в то время как следующие работы

openssl dsaparam 2047 > dsaparam 
openssl gendsa -out keydsa.pem dsaparam
xmlsec1 sign --output doc-signed-x509.xml --privkey-pem keydsa.pem unsigned.xml

время для отчета об ошибке?

person col.panic    schedule 09.11.2013