Cant sign MDNs using b25

You are here

Cant sign MDNs using b25

27 posts / 0 new
Last post
amir
amir's picture
Cant sign MDNs using b25

I've got a problem in that I cant sign MDNs in the response to a message.

The error in my logs is

Sep 3, 2008 2:15:32 PM de.mendelson.comm.as2.message.AS2MessageParser verifySignature
INFO: 24136830.1220447731667.JavaMail.DET_webMethods@deapp085: The sender used the algorithm SHA1 to sign the message.
Sep 3, 2008 2:15:32 PM de.mendelson.comm.as2.message.AS2MessageParser verifySignature
INFO: 24136830.1220447731667.JavaMail.DET_webMethods@deapp085: Using certificate "tchibotest" to verify signature.
Sep 3, 2008 2:15:32 PM de.mendelson.comm.as2.message.AS2MessageParser verifySignature
INFO: 24136830.1220447731667.JavaMail.DET_webMethods@deapp085: Digital signature verified successful.
java.security.NoSuchAlgorithmException: no such algorithm: 1.3.14.3.2.26 for provider BC
at sun.security.jca.GetInstance.getService(GetInstance.java:70)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:190)
at java.security.Signature.getInstance(Signature.java:324)
at de.mendelson.util.security.BCCryptoHelper.convertOIDToAlgorithmName(BCCryptoHelper.java:422)
at de.mendelson.comm.as2.message.AS2MessageParser.computeReceivedContentMIC(AS2MessageParser.java:278)
at de.mendelson.comm.as2.message.AS2MessageParser.createMessageFromRequest(AS2MessageParser.java:191)
at de.mendelson.comm.as2.server.AS2ServerRemoteImpl.newMessageArrived(AS2ServerRemoteImpl.java:129)
at de.mendelson.comm.as2.server.AS2ServerRemoteImpl.computeServerSite(AS2ServerRemoteImpl.java:304)
at de.mendelson.comm.as2.server.AS2ServerRemoteImpl.execute(AS2ServerRemoteImpl.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Sep 3, 2008 2:15:32 PM de.mendelson.comm.as2.message.AS2MessagePacker signMDN
INFO: mec_as2-1220447732950-0@nonepsys_778899998877: Outgoing MDN has been signed with the algorithm "SHA1".
Sep 3, 2008 2:15:33 PM de.mendelson.comm.as2.server.AS2ServerRemoteImpl newMessageArrived
INFO: mec_as2-1220447732950-0@nonepsys_778899998877: Synchronous MDN sent as answer to message 24136830.1220447731667.JavaMail.DET_webMethods@deapp085.

I've done some googling on that error and found this http://www.nabble.com/SunPKCS11-provider-can%27t-handle-algorithm-lookup... perhaps its related?

amir
amir's picture

The partner is reporting they got the MDN but it failed with invalid signature.

They have no problems if use b21 (which shows no error in output).

heller
heller's picture

Amir,

OID 1.3.14.3.2.26 is SHA-1, this is used in m-e-c as2. I tried it and seem to have no problems using SHA-1. Have you somehow mixed up code or modified it?

Regards
Heller

amir
amir's picture

Nope fresh install of mec-as2 (into a clean directory). I did copy the certificates.p12 file from the existing install. Could that be it?.

amir
amir's picture

Could there be something missing in my JVM?

amir
amir's picture

Ok just tried to setup a local install of the app to try and send a signed message to the "test" install on our live server.

I setup a test partner on my pc using "Key2" from a fresh install. I used

SHA1sum
8ae0b3c1d9314f8d32d89710d87cfc545c62de25

filename
install_mec_as2_1.0b25.zip

I created folder mec-as2 and started the mec-as2 server with the test partner.

I tried to send a file to the remote server and see the following error message.


Sep 4, 2008 10:25:32 AM de.mendelson.comm.as2.send.MessageHttpUploader performUpload
SEVERE: mec_as2-1220520332107-1@mycompanyAS2_amir: [SocketException] java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
Sep 4, 2008 10:25:32 AM de.mendelson.comm.as2.message.store.MessageStoreHandler storeSentMessageState
INFO: mec_as2-1220520332107-1@mycompanyAS2_amir: Transaction state written to /tmp/mec-as2/messages/amir/sent/mycompany/20080904/25-apr.csv_mec_as2_1220520332107_1@mycompanyAS2_amir.sent.state.
Sep 4, 2008 10:25:32 AM de.mendelson.comm.as2.jms.JMSMessageReceiver run
SEVERE: mec_as2-1220520332107-1@mycompanyAS2_amir: Connection problem, failed to transmit data.
Sep 4, 2008 10:25:32 AM de.mendelson.comm.as2.message.store.MessageStoreHandler storeSentErrorMessage
SEVERE: mec_as2-1220520332107-1@mycompanyAS2_amir: Message payload stored to "/tmp/mec-as2/messages/amir/error/mycompany/20080904/AS2Message64047.as2".
Sep 4, 2008 10:25:32 AM de.mendelson.comm.as2.message.store.MessageStoreHandler storeSentErrorMessage
SEVERE: mec_as2-1220520332107-1@mycompanyAS2_amir: Raw outgoing message stored to "/tmp/mec-as2/messages/amir/error/mycompany/20080904/raw/error64048.raw".
Sep 4, 2008 10:25:32 AM de.mendelson.comm.as2.message.store.MessageStoreHandler storeSentMessageState
INFO: mec_as2-1220520332107-1@mycompanyAS2_amir: Transaction state written to /tmp/mec-as2/messages/amir/sent/mycompany/20080904/25-apr.csv_mec_as2_1220520332107_1@mycompanyAS2_amir.sent.state.

While I see a GREEN indicator in the GUI. the remote server never received the message and the local station logs (see above) show an error.

amir
amir's picture

Heller,

Do you have a test class that I can run just to sanity check the JVM is setup OK?. something that imports (uses) the BC jars and prints out the providers to make sure its all there?.

Really pulling my hair out with this one :-(

heller
heller's picture

Amir,

somehow BC seems not to be set as your JCE provider. Your installation tries to use SunJSSE as provider for SSL, even this seems to fail?

What JVM are you using?

Regards
Heller

amir
amir's picture

OK I have more results from testing.

Two boxes (A) and (B).

Setup MEC-AS2 b23 and b25 on box B. B25 running on Box A.

If I send a messge from b21 on box B to box A (b25) I see the exception in logs on box A (b25). I see NO errors on sending node (b23).

If I send a message from b25 on box B to b25 on box A I see the exception as above in logs for BOTH nodes.

b25 is therefore the version throwing the error. No such error in b23.

If I try the same tests going the other way round in the messages using b23 on sending node it all works ok on sending node as above, with exception on recieving node (b25).

amir
amir's picture

Heller,

java version "1.6.0_04"
Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)

heller
heller's picture

ProviderLister.java

---
import java.security.Provider;
import java.security.Security;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

public class ProviderLister {

public static void main(String[] args) {
Security.addProvider(new BouncyCastleProvider());
Provider[] providers = Security.getProviders();
for (int i = 0; i < providers.length; i++) {
System.out.println("Provider=" + providers[i].toString());

}
}
}
------

outputs
Provider=SUN version 1.6
Provider=SunRsaSign version 1.5
Provider=SunJSSE version 1.6
Provider=SunJCE version 1.6
Provider=SunJGSS version 1.0
Provider=SunSASL version 1.5
Provider=XMLDSig version 1.0
Provider=SunPCSC version 1.6
Provider=SunMSCAPI version 1.6
Provider=BC version 1.4

on my system.

Regards
Heller

amir
amir's picture

Heller,

I was thinking do I need to edit another other files?.

I had a look in jre/lib/security/java.security

I have the following providers listed.

security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC

Do I need to add one for Bouncy castle?. Will try your test app in the mean time.

edit:

Answer, no we dont as we programatically add BC as a provider. Ignore this post.

amir
amir's picture


[root@web tmp]# java -classpath ./mec_as2.jar:/opt/mec-as2/jlib/bcprov-jdk16-140.jar de.mendelson.util.ProviderLister
Provider=SUN version 1.6
Provider=SunRsaSign version 1.5
Provider=SunJSSE version 1.6
Provider=SunJCE version 1.6
Provider=SunJGSS version 1.0
Provider=SunSASL version 1.5
Provider=XMLDSig version 1.0
Provider=SunPCSC version 1.6
Provider=BC version 1.4

amir
amir's picture

Heller,

I downloaded source code for b25 and added your test class to the package. In AS2.java I made the following change.

helper.initialize();
ProviderLister pl = new ProviderLister();
AS2Server as2Server = new AS2Server(startHTTP);

I changed your debug class above and changed output from main to constructor so when ProviderLister() is instantiated I should see the debug.

Running this on the live servers I see the following debug.


bash-3.00$ ./mec_as2_start.sh
Provider=SUN version 1.6
Provider=SunRsaSign version 1.5
Provider=SunJSSE version 1.6
Provider=SunJCE version 1.6
Provider=SunJGSS version 1.0
Provider=SunSASL version 1.5
Provider=XMLDSig version 1.0
Provider=SunPCSC version 1.6
Provider=BC version 1.4
Sep 4, 2008 12:20:21 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Logging to org.slf4j.impl.JDK14LoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
Sep 4, 2008 12:20:22 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: jetty-6.1.1

So it seems that the provider IS being added to the system but its not being used as its not the prefered Provider?.

amir
amir's picture

Hrm looking at the error
"no such algorithm: 1.3.14.3.2.26 for provider BC"

Its not that BC cant be found as a provider, rather that the OID (1.3.14.3.2.26) for that provider cant be found.

amir
amir's picture

OK more info..

Installed brand new fresh JVM to both machines..


bash-3.00$ ./mec_as2_start.sh
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Server VM (build 10.0-b23, mixed mode)

Provider=SUN version 1.6
Provider=SunRsaSign version 1.5
Provider=SunJSSE version 1.6
Provider=SunJCE version 1.6
Provider=SunJGSS version 1.0
Provider=SunSASL version 1.5
Provider=XMLDSig version 1.0
Provider=SunPCSC version 1.6
Provider=BC version 1.4
Sep 4, 2008 1:14:46 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Logging to org.slf4j.impl.JDK14LoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
Sep 4, 2008 1:14:46 PM sun.reflect.NativeMethodAccessorImpl invoke0

sending between the two nodes results in the same problem.


Sep 4, 2008 1:19:18 PM de.mendelson.comm.as2.message.AS2MessageParser decryptData
INFO: mec_as2-1220530757585-0@amir-web0_amir-web1: AS2 message is not encrypted.
Sep 4, 2008 1:19:18 PM de.mendelson.comm.as2.message.AS2MessageParser verifySignature
INFO: mec_as2-1220530757585-0@amir-web0_amir-web1: AS2 message is signed.
java.security.NoSuchAlgorithmException: no such algorithm: 1.3.14.3.2.26 for provider BC
at sun.security.jca.GetInstance.getService(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at java.security.Signature.getInstance(Unknown Source)
at de.mendelson.util.security.BCCryptoHelper.convertOIDToAlgorithmName(BCCryptoHelper.java:422)
at de.mendelson.comm.as2.message.AS2MessageParser.getDigestFromSignature(AS2MessageParser.java:428)
at de.mendelson.comm.as2.message.AS2MessageParser.verifySignature(AS2MessageParser.java:391)
at de.mendelson.comm.as2.message.AS2MessageParser.createMessageFromRequest(AS2MessageParser.java:189)
at de.mendelson.comm.as2.server.AS2ServerRemoteImpl.newMessageArrived(AS2ServerRemoteImpl.java:129)
at de.mendelson.comm.as2.server.AS2ServerRemoteImpl.computeServerSite(AS2ServerRemoteImpl.java:304)
at de.mendelson.comm.as2.server.AS2ServerRemoteImpl.execute(AS2ServerRemoteImpl.java:97)
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 sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

amir
amir's picture


Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
BEA JRockit(R) (build R27.6.0-50_o-100423-1.6.0_05-20080626-2104-linux-ia32, compiled mode)

Provider=SUN version 1.6
Provider=SunRsaSign version 1.5
Provider=SunJSSE version 1.6
Provider=SunJCE version 1.6
Provider=SunJGSS version 1.0
Provider=SunSASL version 1.5
Provider=XMLDSig version 1.0
Provider=SunPCSC version 1.6
Provider=BC version 1.405
Sep 5, 2008 8:26:09 AM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Logging to org.slf4j.impl.JDK14LoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
Sep 5, 2008 8:26:09 AM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: jetty-6.1.1
Sep 5, 2008 8:26:10 AM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Extract jar:file:/opt/mec-as2/jetty/webapps/mec_as2.war!/ to /tmp/Jetty_0_0_0_0_8080_mec_as2.war__mec_as2__-7tofp5/webapp
Sep 5, 2008 8:26:11 AM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Started SelectChannelConnector @ 0.0.0.0:8080
Sep 5, 2008 8:26:11 AM de.mendelson.comm.as2.server.AS2Server
INFO: m-e-c as2 1.1 build 25
Sep 5, 2008 8:26:11 AM de.mendelson.comm.as2.server.AS2Server
INFO: (c) 2000-2008 mendelson-e-commerce GmbH Berlin, Germany
[Server@1071cfa]: [Thread[Thread-18,5,main]]: putPropertiesFromString(): [port=3333;database.0=file:AS2_DB;dbname.0=as2db;silent=true;trace=false;hsqldb.cache_scale=15;hsqldb.cache_file_scale=8;no_system_exit=true;shutdownarg=COMPACT;]
[Server@1071cfa]: [Thread[Thread-18,5,main]]: checkRunning(false) entered
[Server@1071cfa]: [Thread[Thread-18,5,main]]: checkRunning(false) exited
Sep 5, 2008 8:26:12 AM de.mendelson.comm.as2.database.DBServer run
INFO: HSQL Database Engine 1.8.0 started.
AgentServer#0 started: OK
Sep 5, 2008 8:26:13 AM de.mendelson.comm.as2.jms.MessageQueueServer startup
INFO: Message queue server is started at localhost.
Sep 5, 2008 8:26:14 AM de.mendelson.comm.as2.jms.MessageQueueServer setupQueue
INFO: Message queue set up: #0.0.1047
Sep 5, 2008 8:26:15 AM de.mendelson.comm.as2.cert.CertificateManager loadKeystoreCertificates
INFO: Keys and certificates loaded from "/opt/mec-as2/certificates.p12".
Sep 5, 2008 8:26:15 AM de.mendelson.comm.as2.server.AS2Server
INFO: Server startup in 6817 ms.
Sep 5, 2008 8:26:15 AM de.mendelson.comm.as2.send.DirPollManager
INFO: Directory poll manager started.
Sep 5, 2008 8:26:15 AM de.mendelson.util.clientserver.AbstractServer start
INFO: Starting m-e-c as2 1.1 build 25 client-server interface, listening on port 1235
Sep 5, 2008 8:26:15 AM de.mendelson.util.clientserver.AbstractServer start
INFO: m-e-c as2 1.1 build 25 client-server interface started.
Sep 5, 2008 8:26:16 AM de.mendelson.comm.as2.send.DirPollManager addPartnerPollThread
INFO: Directory poll manager: Poll for relationship "acquireocs/tchibo" started. Ignore files: "--". Poll interval: 10s
Sep 5, 2008 8:26:16 AM de.mendelson.comm.as2.send.DirPollManager addPartnerPollThread
INFO: Directory poll manager: Poll for relationship "acquireocs/amir-web0" started. Ignore files: "--". Poll interval: 10s
Sep 5, 2008 8:26:16 AM de.mendelson.comm.as2.send.DirPollManager addPartnerPollThread
INFO: Directory poll manager: Poll for relationship "acquirestrand/tchibo" started. Ignore files: "--". Poll interval: 10s
Sep 5, 2008 8:26:16 AM de.mendelson.comm.as2.send.DirPollManager addPartnerPollThread
INFO: Directory poll manager: Poll for relationship "acquirestrand/amir-web0" started. Ignore files: "--". Poll interval: 10s
Sep 5, 2008 8:26:16 AM de.mendelson.comm.as2.send.DirPollManager addPartnerPollThread
INFO: Directory poll manager: Poll for relationship "amir-web1/tchibo" started. Ignore files: "--". Poll interval: 10s
Sep 5, 2008 8:26:16 AM de.mendelson.comm.as2.send.DirPollManager addPartnerPollThread
INFO: Directory poll manager: Poll for relationship "amir-web1/amir-web0" started. Ignore files: "--". Poll interval: 10s
Sep 5, 2008 8:26:59 AM de.mendelson.comm.as2.message.AS2MessageParser decryptData
INFO: mec_as2-1220599618338-10@amir-web0_amir-web1: AS2 message is not encrypted.
Sep 5, 2008 8:26:59 AM de.mendelson.comm.as2.message.AS2MessageParser verifySignature
INFO: mec_as2-1220599618338-10@amir-web0_amir-web1: AS2 message is signed.
java.security.NoSuchAlgorithmException: no such algorithm: 1.3.14.3.2.26 for provider BC
at sun.security.jca.GetInstance.getService(GetInstance.java:70)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:190)
at java.security.Signature.getInstance(Signature.java:324)
at de.mendelson.util.security.BCCryptoHelper.convertOIDToAlgorithmName(BCCryptoHelper.java:422)
at de.mendelson.comm.as2.message.AS2MessageParser.getDigestFromSignature(AS2MessageParser.java:428)
at de.mendelson.comm.as2.message.AS2MessageParser.verifySignature(AS2MessageParser.java:391)
at de.mendelson.comm.as2.message.AS2MessageParser.createMessageFromRequest(AS2MessageParser.java:189)
at de.mendelson.comm.as2.server.AS2ServerRemoteImpl.newMessageArrived(AS2ServerRemoteImpl.java:129)
at de.mendelson.comm.as2.server.AS2ServerRemoteImpl.computeServerSite(AS2ServerRemoteImpl.java:304)
at de.mendelson.comm.as2.server.AS2ServerRemoteImpl.execute(AS2ServerRemoteImpl.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)

So its not the JVM as different JVMs from different providers have the same problem. Have you been able to test this on a Linux environment yourself? (heller). Has anyone else got this working ?

amir
amir's picture

Heller,

Another thought, are you all checked into CVS?. Perhaps you have a new version running locally that you've inadvertently fixed this issue in?. You have my email, could you put your working version on your site and mail me the url to download to test?. The standard certificates.p12 is fine so you can remove any you need to.

I'm wondering if your version is working but version in CVS is not.

heller
heller's picture

Amir,

I tested with the release version, its identical to the CVS code.
Anyway I could setup another test later, what parameter did you use (signed/unsigned, encrypted/compressed etc)

Anyway could you please ensure in your start scripts that you are really using the VM that you expect to use? Are you using the right classes, is your classpath ok?

Regards
Heller

amir
amir's picture

i setup 2 boxes.

I used signed messages only (no encryption). I used Key2 (as provided by basic install).

I know I am using that VM because I have added paramter "-showversion" to the java invoke line. That is where the JVM info comes from in my posts above, its output when the server starts up. This is why the text changed when the JRockit JVM was used.

Messags are send using "send to partner" option if file dialog, to simulate a parter send. No compression used, just basic signed message using "Key2".

classpath is easy one to check, i'll echo out CLASSPATH variable to check.

amir
amir's picture

class path looks fine.. would have added as attachment but i think think this forums allows attachments?.

heller
heller's picture

Amir,

I set up 2 m-e-c as2 systems and transfered messages without problems.

Regards
Heller

amir
amir's picture

The only thing I can think of, did you do it on a windows box?. I'm using this on a linux box.

heller
heller's picture

Amir,

you are right, I made the test on Windows OS. Now I installed a version of m-e-c as2 on Ubuntu and it works fine.

Regards
Heller

amir
amir's picture

OK, well the live servers runs RHEL. I'm using FC9 here locally (on my desktop). I'll set it up here to see what happens.

kaja78
kaja78's picture

Hi,
I get also this message, but after some investigation I found its probably just forgotten logging message in BCCryptoHelper.convertOIDToAlgorithmName method.
If SHA1 is used for signing, this method correctly converts OID of 1.3.14.3.2.26 to SHA1 algorithm. But before this, it prints out stacktrace of caught NoSuchAlgorithmException.
I think you can ignore this message, or comment out first five lines of given procedure:

/**Converts the passed algorithm or OID*/
public String convertOIDToAlgorithmName(String oid) throws NoSuchAlgorithmException {
/*try {
Signature sig = Signature.getInstance(oid, "BC");
System.out.println(sig.getAlgorithm());
} catch (Exception e) {
e.printStackTrace();
}*/
if (oid == null) {
throw new NoSuchAlgorithmException("OID is null");
} else if (oid.equalsIgnoreCase("1.2.840.113549.2.5")) {
return (ALGORITHM_MD5);
} else if (oid.equalsIgnoreCase("1.3.14.3.2.26")) {
return (ALGORITHM_SHA1);
} else if (oid.equalsIgnoreCase(CMSEnvelopedDataGenerator.CAST5_CBC)) {
return (ALGORITHM_CAST5);
} else if (oid.equalsIgnoreCase(CMSEnvelopedDataGenerator.DES_EDE3_CBC)) {
return (ALGORITHM_3DES);
} else if (oid.equalsIgnoreCase("1.3.14.3.2.7")) {
return (ALGORITHM_DES);
} else if (oid.equalsIgnoreCase(CMSEnvelopedDataGenerator.IDEA_CBC)) {
return (ALGORITHM_IDEA);
} else if (oid.equalsIgnoreCase(CMSEnvelopedDataGenerator.RC2_CBC)) {
return (ALGORITHM_RC2);
} else if (oid.equalsIgnoreCase("1.2.840.113549.3.4")) {
return (ALGORITHM_RC4);
} else if (oid.equalsIgnoreCase(CMSEnvelopedDataGenerator.AES128_CBC)) {
return (ALGORITHM_AES_128);
} else if (oid.equalsIgnoreCase(CMSEnvelopedDataGenerator.AES192_CBC)) {
return (ALGORITHM_AES_192);
} else if (oid.equalsIgnoreCase(CMSEnvelopedDataGenerator.AES256_CBC)) {
return (ALGORITHM_AES_256);
} else {
throw new NoSuchAlgorithmException("Unsupported algorithm: OID " + oid);
}
}

amir
amir's picture

thanks for this!, will try it when i get a moment and see if it helps.