небольшой совет о том, как войти в EPES

В данный момент я работаю над фирменным EPES и хотел бы немного информации;

для подписи у меня есть SignerTestBase.java :

public class SignerTestBase extends SignatureServicesTestBase

{

static protected KeyingDataProvider keyingProviderMy;
static protected KeyingDataProvider keyingProviderNist;

static
{
    try
    {
        keyingProviderMy = createFileSystemKeyingDataProvider("pkcs12", "my/LG.pfx", "mykeypass", true);
        keyingProviderNist = createFileSystemKeyingDataProvider("pkcs12", "csrc.nist/test4.p12", "password", false);
    } catch (KeyStoreException e)
    {
        throw new NullPointerException("SignerTestBase init failed: " + e.getMessage());
    }
}
 public static Document getTestDocument() throws Exception
    {
        //return getDocument("document.xml");

        //==that I changed=====================================================================
        **return getDocument("b.xml");**


}

а также :

@Test
public void testSignEPES() throws Exception
{
    System.out.println("signEPES");

    Document doc = getTestDocument();

    Element elemToSign = doc.getDocumentElement();

    SignerEPES signer = (SignerEPES)new XadesEpesSigningProfile(keyingProviderMy, policyInfoProvider).newSigner();
    new Enveloped(signer).sign(elemToSign);

    **outputDocument(doc, "document.signed.epes.xml");**
}

В основном :

System.out.println("============================================================================");          
        System.out.println("XADESTEST : EPES SIGNATURE");
        System.out.println("============================================================================"); 
        System.out.println();

        SignerEPESTest signerEPESTest = new SignerEPESTest();
        System.out.println("signerEPESTest : " + signerEPESTest.toString());


        /**
         *  ==== NOT OK =====
         */

        **signerEPESTest.testSignEPES();**

И в моей консоли, когда я запускаю:

============================================================================
XADESTEST : EPES SIGNATURE
============================================================================

signerEPESTest : xadestest.SignerEPESTest@1c63e8c
signEPES
Exception in thread "main" java.lang.NullPointerException
    at xades4j.utils.XadesProfileCore.addBinding(XadesProfileCore.java:81)
    at xades4j.production.XadesSigningProfile.withBinding(XadesSigningProfile.java:131)
    at xades4j.production.XadesEpesSigningProfile.<init>(XadesEpesSigningProfile.java:51)
    at xadestest.SignerEPESTest.testSignEPES(SignerEPESTest.java:59)
    at xadestest.XadesTest.main(XadesTest.java:103)
Java Result: 1
BUILD SUCCESSFUL (total time: 16 seconds)

Please during I am searching, can anybody help me?

Будут


person Ale    schedule 03.09.2012    source источник


Ответы (1)


Кажется, что аргумент policyInfoProvider для XadesEpesSigningProfile равен нулю. В конструкторе отсутствует проверка null с лучшим сообщением.

person lgoncalves    schedule 03.09.2012