RAVI created CAMEL-21296:
----------------------------

             Summary: Camel AS2 Sender application couldn't validate MDN message
                 Key: CAMEL-21296
                 URL: https://issues.apache.org/jira/browse/CAMEL-21296
             Project: Camel
          Issue Type: Bug
          Components: camel-as2
    Affects Versions: 4.5.0
            Reporter: RAVI


Hi Team,
 
We are conducting a POC using the Camel-AS2 project (version 4.5.0) to 
facilitate communication with the OpenText tool, with plans to extend this 
setup for communication with our trading partners in the future.
 
We’ve implemented a Camel-AS2 sender application, which has been configured to 
send EDI messages to the OpenText AS2 receiver. The OpenText AS2 receiver 
successfully receives the messages and sends back a signed MDN. However, our 
Camel-AS2 sender application encounters the following exception during MDN 
validation.
 
Based on the Camel documentation, it appears that MDN verification on the 
client side isn’t fully supported by Camel. To address this, we are utilizing 
the org.apache.camel.component.as2.api.util.SigningUtils.isValid() method, but 
this is where the exception arises.
 
We’ve identified that the message digest value computed on the MDN by OpenText 
(included in the Signature object) doesn’t match the one computed by the 
Camel-AS2 sender application upon receiving the MDN.
 
We suspect this discrepancy may be related to line separator differences in the 
MDN message. Could you provide further insights or guidance on this issue?
 
Here’s the relevant code snippet we are using to validate after recieving 
response from Open text:
 
if (exchange.getMessage().getBody() instanceof MultipartSignedEntity) {
    MultipartSignedEntity responseSignedEntity = (MultipartSignedEntity) 
exchange.getMessage().getBody();
    AS2Component component = exchange.getContext().getComponent("as2", 
AS2Component.class);
    AS2Configuration configuration = component.getConfiguration();
    System.out.println("count " + responseSignedEntity.getPartCount());
    boolean verifiedFlag = SigningUtils.isValid(responseSignedEntity, 
configuration.getValidateSigningCertificateChain());
}
 
 
org.bouncycastle.cms.CMSSignerDigestMismatchException: message-digest attribute 
value does not match calculated value
at 
org.bouncycastle.cms.SignerInformation.verifyMessageDigestAttribute(SignerInformation.java:550)
 ~[bcpkix-debug-jdk18on-1.77.jar:1.77.00.0]
at org.bouncycastle.cms.SignerInformation.doVerify(SignerInformation.java:452) 
~[bcpkix-debug-jdk18on-1.77.jar:1.77.00.0]
at org.bouncycastle.cms.SignerInformation.verify(SignerInformation.java:659) 
~[bcpkix-debug-jdk18on-1.77.jar:1.77.00.0]
at org.bouncycastle.cms.CMSSignedData.verifySignatures(CMSSignedData.java:436) 
~[bcpkix-debug-jdk18on-1.77.jar:1.77.00.0]
at org.bouncycastle.cms.CMSSignedData.verifySignatures(CMSSignedData.java:411) 
~[bcpkix-debug-jdk18on-1.77.jar:1.77.00.0]
at 
org.apache.camel.component.as2.api.util.SigningUtils.isValidSigned(SigningUtils.java:155)
 ~[classes/:na]
at 
org.apache.camel.component.as2.api.util.SigningUtils.isValid(SigningUtils.java:191)
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to