Giter Club home page Giter Club logo

pyas2's People

Contributors

abhishek-ram avatar kurohai avatar mreinigjr avatar vduda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyas2's Issues

SuspiciousFileOperation at /admin/pyas2/privatecertificate/add/

Hi there,

When uploading the private key I get this error.

The joined path (/pyas2/certificates/as2_private.pem) is located outside of the base path component (/media)

It seems that's due to this line below but I'm left wondering how this hasn't come up before? It feels to me like it would be better to reference the path to these keys in the settings dict rather than using upload in admin?

https://github.com/abhishek-ram/pyas2/blob/master/pyas2/models.py#L19

Requesting MDN From Partner Error

Hello,

When requesting an MDN from partner I receive the following error with traceback:

20150628 19:09:37 INFO     : Send message started with parameters: "['/usr/bin/python', '/home/testserver/django_pyas2/manage.py', 'sendas2message', u'test1', u'test2', u'/tmp/test.txtxjxflq']"
System check identified some issues:

WARNINGS:
?: (1_6.W001) Some project unittests may not execute as expected.
HINT: Django 1.6 introduced a new default test runner. It looks like this project was generated using Django 1.5 or earlier. You should ensure your tests are all running & behaving as expected. See https://docs.djangoproject.com/en/dev/releases/1.6/#new-test-runner for more information.
20150628 19:09:37 DEBUG    : Sender Mic content 
MIME-Version: 1.0
Content-Type: application/pkcs7-mime; name="smime.p7z"; smime-type="compressed-data"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7z"

MIAGCyqGSIb3DQEJEAEJoIAwgAIBADCABgsqhkiG9w0BCRADCAAAMIAGCSqGSIb3DQEHAaCABGJ4
nC3KMQ6AIBAF0Z6EOxh7tddY4RG8AMElroEFwy/w9mJiO/NMEpBg2J9Mc2dzDuwsOMlEBw8uSWlX
K/OzjUtOhT/QNGDdGVtfOs+BxEZae1DBiIp6VR/uXiutvvQCFhgmTgAAAAAAAAAAAAA=

Traceback (most recent call last):
  File "/home/testserver/django_pyas2/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/pyas2/management/commands/sendas2message.py", line 54, in handle
    message.save()
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 589, in save
    force_update=force_update, update_fields=update_fields)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 617, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 679, in _save_table
    forced_update)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 723, in _do_update
    return filtered._update(values) > 0
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 600, in _update
    return query.get_compiler(self.db).execute_sql(CURSOR)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 1005, in execute_sql
    cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 787, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py", line 81, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
django.db.utils.DataError: value too long for type character varying(2)

Here is the log messages from pyas2 admin:

image

SOLUTION

The problem originates from table pyas2_message, column mdn_mode. Here the options from models.py can only be "ASYNC" or "SYNC". varchar(2) will not be enough to hold either of these values and needs to be updated to at least varchar(5). After changing to varchar(5). The issue is eliminated.

Thanks!

Hashing algorithms other than sha-1

Hi there, is anyone working on or planning to work on sha-256 or sha-512 hashing? I am looking at integrating with a partner who does not accept sha-1.

I would be willing to help if someone is starting on this project or I could work on it if someone can give me advice :)

Bug? I see a stack trace when running in daemon mode

starting daemon mode python manage.py runas2daemon.

Now when I drop a file in the outbox (e.g. p1/django_pyas2/messages/p2as2/outbox/p1as2/), I see a stacktrace:

Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in *bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(_self.__args, _self.__kwargs)
File "/home/latze/.virtualenvs/as2/local/lib/python2.7/site-packages/pyas2/management/commands/runas2daemon.py", line 122, in linux_event_handler
notifier.loop()
File "/home/latze/.virtualenvs/as2/local/lib/python2.7/site-packages/pyinotify.py", line 1390, in loop
self.process_events()
File "/home/latze/.virtualenvs/as2/local/lib/python2.7/site-packages/pyinotify.py", line 1287, in process_events
self._default_proc_fun(revent)
File "/home/latze/.virtualenvs/as2/local/lib/python2.7/site-packages/pyinotify.py", line 924, in __call

return _ProcessEvent.call(self, event)
File "/home/latze/.virtualenvs/as2/local/lib/python2.7/site-packages/pyinotify.py", line 650, in call
return self.process_default(event)
File "/home/latze/.virtualenvs/as2/local/lib/python2.7/site-packages/pyas2/management/commands/runas2daemon.py", line 106, in process_default
for dir_watch in self.dir_watch_data:
AttributeError: 'LinuxEventHandler' object has no attribute 'dir_watch_data'

Failed to decompress inbound message

Currently receiving the following log message on all inbound messages. Why is this happening?

An error occurred during the AS2 message processing: Failed to decompress message,exception message is tuple index out of range

Running pyas2 on Heroku

Has anyone ran this server on Heroku?

I am getting the following error which is similar to #30 but I think the solution will have to be different because the way Heroku installs packages.

2018-03-05T22:20:16.974472+00:00 heroku[web.1]: - Starting process with command `python manage.py runas2server`
2018-03-05T22:20:20.281704+00:00 heroku[web.1]: - State changed from starting to crashed
2018-03-05T22:20:20.195261+00:00 app[web.1]: - Traceback (most recent call last):
2018-03-05T22:20:20.195296+00:00 app[web.1]: -     execute_from_command_line(sys.argv)
2018-03-05T22:20:20.195287+00:00 app[web.1]: -   File "manage.py", line 22, in <module>
2018-03-05T22:20:20.195310+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
2018-03-05T22:20:20.195348+00:00 app[web.1]: -     utility.execute()
2018-03-05T22:20:20.195425+00:00 app[web.1]: -     django.setup()
2018-03-05T22:20:20.195360+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 341, in execute
2018-03-05T22:20:20.195436+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
2018-03-05T22:20:20.195443+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
2018-03-05T22:20:20.195494+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/django/apps/config.py", line 199, in import_models
2018-03-05T22:20:20.195523+00:00 app[web.1]: -     self.models_module = import_module(models_module_name)
2018-03-05T22:20:20.195441+00:00 app[web.1]: -     apps.populate(settings.INSTALLED_APPS)
2018-03-05T22:20:20.195529+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/importlib/__init__.py", line 37, in import_module
2018-03-05T22:20:20.195491+00:00 app[web.1]: -     app_config.import_models(all_models)
2018-03-05T22:20:20.195537+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/pyas2/models.py", line 6, in <module>
2018-03-05T22:20:20.195603+00:00 app[web.1]: -     from pyas2 import pyas2init
2018-03-05T22:20:20.195606+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/pyas2/pyas2init.py", line 5, in <module>
2018-03-05T22:20:20.195533+00:00 app[web.1]: -     __import__(name)
2018-03-05T22:20:20.195611+00:00 app[web.1]: -     from pyas2 import as2utils
2018-03-05T22:20:20.195615+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/pyas2/as2utils.py", line 12, in <module>
2018-03-05T22:20:20.195637+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/M2Crypto/__init__.py", line 26, in <module>
2018-03-05T22:20:20.195635+00:00 app[web.1]: -     from M2Crypto import BIO, SMIME, X509
2018-03-05T22:20:20.195690+00:00 app[web.1]: -     from M2Crypto import (ASN1, AuthCookie, BIO, BN, DH, DSA, EVP, Engine, Err,
2018-03-05T22:20:20.195693+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/M2Crypto/ASN1.py", line 15, in <module>
2018-03-05T22:20:20.195695+00:00 app[web.1]: -     from M2Crypto import BIO, m2, util
2018-03-05T22:20:20.195696+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/M2Crypto/BIO.py", line 9, in <module>
2018-03-05T22:20:20.195701+00:00 app[web.1]: -     from M2Crypto import m2, six, util
2018-03-05T22:20:20.195703+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/M2Crypto/m2.py", line 30, in <module>
2018-03-05T22:20:20.195706+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/M2Crypto/m2crypto.py", line 26, in <module>
2018-03-05T22:20:20.195704+00:00 app[web.1]: -     from M2Crypto.m2crypto import *
2018-03-05T22:20:20.195710+00:00 app[web.1]: -     _m2crypto = swig_import_helper()
2018-03-05T22:20:20.195713+00:00 app[web.1]: -   File "/app/.heroku/python/lib/python2.7/site-packages/M2Crypto/m2crypto.py", line 22, in swig_import_helper
2018-03-05T22:20:20.195738+00:00 app[web.1]: -     _mod = imp.load_module('_m2crypto', fp, pathname, description)
2018-03-05T22:20:20.195746+00:00 app[web.1]: - ImportError: /app/.heroku/python/lib/python2.7/site-packages/M2Crypto/_m2crypto.so: undefined symbol: sslv3_method```

Problem installing pyAS2 on Windows 2012

I'm trying to install pyAS2 on Windows 2012 server. This is how far I get

SWIG/_m2crypto_wrap.c(3541) : fatal error C1083: Cannot open include file: '

openssl/err.h': No such file or directory
error: command 'C:\Users\Administrator\AppData\Local\Programs\Common\
Microsoft\Visual C++ for Python\9.0\VC\Bin\cl.exe' failed with exit status
2

bug: pip install does not work anymore

Downloading/unpacking pyas2
Downloading pyAS2-0.2.tar.gz (247kB): 247kB downloaded
Running setup.py (path:/tmp/pip-build-KEI3C8/pyas2/setup.py) egg_info for package pyas2
Traceback (most recent call last):
File "", line 17, in
File "/tmp/pip-build-KEI3C8/pyas2/setup.py", line 4, in
with open(os.path.join(os.path.dirname(file), 'pyAS2/README.rst')) as readme:
IOError: [Errno 2] No such file or directory: '/tmp/pip-build-KEI3C8/pyas2/pyAS2/README.rst'
Complete output from command python setup.py egg_info:
Traceback (most recent call last):

File "", line 17, in

File "/tmp/pip-build-KEI3C8/pyas2/setup.py", line 4, in

with open(os.path.join(os.path.dirname(__file__), 'pyAS2/README.rst')) as readme:

IOError: [Errno 2] No such file or directory: '/tmp/pip-build-KEI3C8/pyas2/pyAS2/README.rst'


Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-KEI3C8/pyas2
Storing debug log for failure in /home/latze/.pip/pip.log

Use PYASN1 for signing and verification

The latest update of pyasn1 is able to parse the pkcs7 data, so in effect we should be ablt to extract the signatures and then verify them.

This will mean that we have full control over signing such as hashing algrithm used and other factors that are not exposed by M2Crypto

Getting Duplicate PRIMARY key error

Can anyone help to explain why the server throws exception on a particular inbound receive? Someone is sending to us a X12 formatted payload. We are getting the following exception. Seems to be duplicate key? I'm not quite sure why this is happening.

20170921 12:52:35 ERROR    : Fatal error while processing message AS2.11.BizLink.3.3.0.68.668c2956-4fa2-460e-8626-ca138278ccb4.4388672f-9eed-11e7-a4c6-c6b9043a942e@85aa9ee9f8d90158.5c761060.15ea55aeec1.8000, error:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/pyas2/views.py", line 544, in as2receive
    status_message=status_message)
  File "/usr/lib/python2.7/site-packages/pyas2/as2lib.py", line 311, in build_mdn
    message.save()
  File "/usr/lib64/python2.7/site-packages/django/db/models/base.py", line 796, in save
    force_update=force_update, update_fields=update_fields)
  File "/usr/lib64/python2.7/site-packages/django/db/models/base.py", line 824, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/usr/lib64/python2.7/site-packages/django/db/models/base.py", line 908, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/usr/lib64/python2.7/site-packages/django/db/models/base.py", line 947, in _do_insert
    using=using, raw=raw)
  File "/usr/lib64/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/django/db/models/query.py", line 1045, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/usr/lib64/python2.7/site-packages/django/db/models/sql/compiler.py", line 1054, in execute_sql
    cursor.execute(sql, params)
  File "/usr/lib64/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/usr/lib64/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/lib64/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/lib64/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/lib64/python2.7/site-packages/django/db/backends/mysql/base.py", line 110, in execute
    return self.cursor.execute(query, args)
  File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
IntegrityError: (1062, "Duplicate entry '.... the message id that is scrubbed here ....' for key 'PRIMARY'")

Undefined symbol: SSLv3_method

I keep getting this error message when I run "python manage.py makemigrations pyas2"; how do I fix this?

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
    django.setup()
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/django/apps/config.py", line 197, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/pyas2/models.py", line 6, in <module>
    from pyas2 import pyas2init
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/pyas2/pyas2init.py", line 5, in <module>
    from pyas2 import as2utils
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/pyas2/as2utils.py", line 12, in <module>
    from M2Crypto import BIO, SMIME, X509
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/M2Crypto/__init__.py", line 26, in <module>
    from M2Crypto import (ASN1, AuthCookie, BIO, BN, DH, DSA, EVP, Engine, Err,
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/M2Crypto/ASN1.py", line 15, in <module>
    from M2Crypto import BIO, m2, util
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/M2Crypto/BIO.py", line 10, in <module>
    from M2Crypto import m2, util
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/M2Crypto/m2.py", line 30, in <module>
    from M2Crypto._m2crypto import *
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/M2Crypto/_m2crypto.py", line 26, in <module>
    __m2crypto = swig_import_helper()
  File "/home/max/Projects/as2test/env/lib/python2.7/site-packages/M2Crypto/_m2crypto.py", line 22, in swig_import_helper
    _mod = imp.load_module('__m2crypto', fp, pathname, description)
ImportError: /home/max/Projects/as2test/env/lib/python2.7/site-packages/M2Crypto/__m2crypto.so: undefined symbol: SSLv3_method

pyas2 built-in web server fails with chunked encoding transfer

When receiving messages from MS Biztalk, we occasionally see this error during decryption:

An error occurred during the AS2 message processing: Failed to decrypt message, exception message is header too long

the debug output doesn't show any particular AS2 protocol header that's too long, so maybe its' some other header. What is strange is that the debug log does not show the raw contents that were received.

e.g. failed log shows this:

20170525 13:11:08 DEBUG    : Recevied an HTTP POST from 172.18.0.1 with payload :
caddy-rewrite-original-uri: /
ediint-features: multiple-attachments
message-id: <VMSERVER412_0F426FE6-58EB-4DD4-A67A-3B3BD61E724F>
x-real-ip: 217.6.54.146
content-length: 5376
user-agent: Microsoft (R) BizTalk (R) Server 2013 R2
connection: close
mime-version: 1.0
content-transfer-encoding: binary
as2-to: STRADERFERRISTEST
as2-version: 1.2
x-forwarded-proto: http
host: as2.strader-ferris.com:27202
expect: 100-continue
as2-from: Test-Schleich
disposition-notification-options: signed-receipt-protocol=required,pkcs7-signature; signed-receipt-micalg=required,sha1
disposition-notification-to: Test-Schleich
x-forwarded-for: 217.6.54.146
content-type: application/pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"
accept-encoding: gzip


20170525 13:11:08 DEBUG    : Check payload to see if its an AS2 Message or ASYNC MDN.
20170525 13:11:08 INFO     : Received an AS2 message with id <VMSERVER412_0F426FE6-58EB-4DD4-A67A-3B3BD61E724F> for organization STRADERFERRISTEST from partner Test-Schleich
20170525 13:11:08 DEBUG    : Decrypting the payload :

20170525 13:11:08 DEBUG    : MDN for message VMSERVER412_0F426FE6-58EB-4DD4-A67A-3B3BD61E724F created:
Content-Type: multipart/report; report-type="disposition-notification";
 boundary="===============5931524620576249009=="

--===============5931524620576249009==
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

The AS2 message could not be processed. The disposition-notification report has additional details.

--===============5931524620576249009==
Content-Type: message/disposition-notification; charset="us-ascii"
Content-Transfer-Encoding: 7bit

When we ask them to retransmit the same message again, it works and the message is decoded ok

In both cases the content-length is the same, 5376

How do we figure out what header is too long?

Why does the raw message contents not appear in the debug log in the failed case?

20170525 19:04:38 DEBUG    : Recevied an HTTP POST from 172.18.0.1 with payload :
caddy-rewrite-original-uri: /
ediint-features: multiple-attachments
message-id: <VMSERVER412_8C56C46A-4359-466F-931C-3DB2500A619E>
x-real-ip: 217.6.54.146
content-length: 5376
user-agent: Microsoft (R) BizTalk (R) Server 2013 R2
connection: close
mime-version: 1.0
content-transfer-encoding: binary
as2-to: STRADERFERRISTEST
as2-version: 1.2
x-forwarded-proto: http
host: as2.strader-ferris.com:27202
expect: 100-continue
as2-from: Test-Schleich
disposition-notification-options: signed-receipt-protocol=required,pkcs7-signature; signed-receipt-micalg=required,sha1
disposition-notification-to: Test-Schleich
x-forwarded-for: 217.6.54.146
content-type: application/pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"
accept-encoding: gzip

0<82>^T<FC>^F   *<86>H<86><F7>^M^A^G^C<A0><82>^T<ED>0<82>^T<E9>^B^A^@1<82>^A<C1>0<82>^A<BD>^B^A^@0<81><A4>0<81><96>1^K0 ^F^CU^D^F^S^BUS1^K0     ^F^CU^D^H^L^BNY1^S0^Q^F^CU^D^G^L
Ogdensburg1*0(^F^CU^D
^L!Strader-Ferris International TEST1^Z0^X^F^CU^D^C^L^QSTRADERFERRISTEST1^]0	

Signature not being recognized as SHA-1

Hello,

This may be related to Issue #6.

I am again continuing to test with Mendelson's provided test server. The details for this free service can be found here:

http://as2.mendelson-e-c.com/

When selecting SHA-1 in the partner configuration page under MDN Settings in the pyas2 admin, it does not seem that is what the partner is recognizing as the used hash algorithm. For some reason they are recognizing it as SHA-256. Please see the screenshot below and take notice of the last row that is highlighted.

image

If you look at some of the other rows above, you can see that others have submitted signatures that are recognized as SHA-1.

I think the issue might be in the header. Mendelson interprets the pyas2 sent header as:

as2-version = 1.2
content-length = 3853
disposition-notification-to = [email protected]
accept = */*
recipient-address = http://testas2.mendelson-e-c.com:8080/as2/HttpReceiver
ediint-features = CEM
message-id = <20150629010101.1725.34375@Q6-EDI>
mime-version = 1.0
content-type = application/pkcs7-mime; smime-type="enveloped-data"; name="smime.p7m"
as2-from = mycompanyAS2
disposition-notification-options = signed-receipt-protocol=required, pkcs7-signature; signed-receipt-micalg=optional, sha1
content-transfer-encoding = base64
subject = EDI Message sent using pyas2
accept-encoding = gzip, deflate, compress
content-disposition = attachment; filename="smime.p7m"
as2-to = mendelsontestAS2
host = testas2.mendelson-e-c.com:8080
user-agent = PYAS2, A pythonic AS2 server
date = Sun, 28 Jun 2015 20:01:01 -0500

other senders where SHA-1 is identified are interpreted as:

content-type = application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m
message-id = <mendelson_opensource_AS2-1435430104561-2776@mycompanyAS2_mendelsontestAS2>
host = testas2.mendelson-e-c.com:8080
as2-to = mendelsontestAS2
recipient-address = http://testas2.mendelson-e-c.com:8080/as2/HttpReceiver
as2-version = 1.2
user-agent = mendelson opensource AS2 1.1 build 45 - www.mendelson-e-c.com
date = Sat, 27 Jun 2015 13:35:05 COT
ediint-features = multiple-attachments, CEM
via = 1.1 proxy:3128 (squid/2.5.STABLE1)
connection = keep-alive
x-forwarded-for = 10.0.0.22
mime-version = 1.0
cache-control = max-age=259200
from = [email protected]
content-disposition = attachment; filename="smime.p7m"
as2-from = mycompanyAS2
disposition-notification-to = http://www.company.com:8080/as2/HttpReceiver
disposition-notification-options = signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, sha1
content-length = 2838
expect = 100-continue
subject = AS2 message

and another:

disposition-notification-options = signed-receipt-protocol=optional,pkcs7-signature; signed-receipt-micalg=optional,sha1
as2-to = mendelsontestAS2
subject = test.txt transmission.
host = testas2.mendelson-e-c.com:8080
content-length = 2482
as2-version = 1.2
expect = 100-continue
ediint-features = multiple-attachments
user-agent = AS2 SENDING AGENT
message-id = <AS2_2015-06-25_17:08:26>
disposition-notification-to = mycompanyAS2
mime-version = 1.0
as2-from = mycompanyAS2
content-type = application/pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"

I am still trying to go through the RFC specs for S/MIME, but if anything jumps out at you as to what would cause the sender to misinterpret the hash algorithm used, then please let me know.

Here is also a senders RAW decrypted message as interpreted by Mendelson:

MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="boundaryoJtiAg=="

--boundaryoJtiAg==
Content-Type: application/edi-x12
Content-Transfer-Encoding: binary
Content-Disposition: Attachment; filename="rfc1767.edi"

test
EDI
data

--boundaryoJtiAg==
Content-Type: application/pkcs7-signature;      name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

~~A bunch of garbage text~~

--boundaryoJtiAg==--

Here is the pyas2 RAW decrypted message:

Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha1"; boundary="===============5446110528956887519=="

--===============5446110528956887519==
Content-Type: application/edi-consent
Content-Disposition: attachment; filename="test.txt1b46w4"

test
--===============5446110528956887519==
Content-Type: application/pkcs7-signature; name="smime.p7s"; smime-type="signed-data"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

~~A bunch of garbage text~~
--===============5446110528956887519==--

Again, any thoughts on this would be much appreciated.

Thanks!!

missing setup.py

when i look here on github.com in the project repo i see no setup.py, but if i download the .tar.gz from pypi i do see it. any ideas why it doesn't exist here in the repo?

I'm trying to install the project in develop mode to make some changes

Sending message between two PYAS2 server

I have setup two PYAS2 servers and trying to send a message between the two I followed the instructions here in this Quick Start Guide http://pyas2.readthedocs.io/en/latest/quick-start-guide.html#

I can't get it to work. When trying to send a file this is how far it gets

I checked the logs for both the application and server. Application log only shows the Send message started with parameters: {parameters} and the server log is empty

I see that logging is set to INFO. Where can I change the log level of the application?

Here is the screenshot
ayas2 send message

-

any reference how do i export this files into readable.. or some document on how to start on inbound data.

Message List Paging with Filters

Paging on the messages list is broken when using filters. The next page link is hard-coded to use ?page=2. The link should also use all other URL queries to maintain filters.

Example: The URL for page 1 of inbound messages is /pyas2/message/?direction=IN. The next page button takes you to /pyas2/message/?page=2. It should instead take you to /pyas2/message/?direction=IN&page=2.

call_command instead of subprocess.Popen

Django provides a builtin function for calling commands django.core.management.call_command
Is there something that Popen is providing in this case that call_command does not? Looking to see if I am missing something obvious.

python_executable_path = pyas2init.gsettings['python_path']
managepy_path = pyas2init.gsettings['managepy_path']
...
lijst = [
    python_executable_path,
    managepy_path,
    'sendas2message',
    '--delete',
    form.cleaned_data['organization'],
    form.cleaned_data['partner'],
    temp.name
]
subprocess.Popen(lijst).pid

Can be simplified by using:

kwargs = {
    'delete': delete,
    'organization_as2name': form.cleaned_data['organization'],
    'partner_as2name': form.cleaned_data['partner'],
    'path_to_payload': temp.name
}
call_command('sendas2message', **kwargs)

UI is not the same as the one from the documentation

Hi,

I have followed the installation instructions from the doc. But when I access to the UI, I dont have the same as the one in the doc. I don't have the logo, name of the server, all the tabs (run, etc...). I have only the "pyAS2 Global Settings" and a tab Home which redirect to the Django admin page...

My server is on Linux Fedora 23 Server. Python version is 2.7.10 and the Django version is 1.9.3.

Could you help & advise.
Thanks

Fred

Certificate Problems - Question

I am fairly new to the AS2 game, and your software has been the first I have been able to get up and running. However, I am having the below issues that I would very much appreciate your help with.

When testing with Mendelson's test server (Here is info regarding the test server: http://as2.mendelson-e-c.com/), I keep receiving the following openssl error:

Failed to send message, error is 140647279224640:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: CERTIFICATE

I have extracted the sender key and certificate provided by mendelson (key1.pfx) using:

certificate:
openssl pkcs12 -in key1.pfx -nokeys -out cert.pem

key (used -des3 to maintain password on key):
openssl pkcs12 -in key1.pfx -nocerts -out key.pem -nodes -des3

If I don't sign the AS2 test message, then the message is sent. However, no data is sent with message and the server outputs:

20150627 11:06:14 DEBUG    : Sender Mic content 
None
20150627 11:06:49 INFO     : Send message started with parameters: "['/usr/bin/python', '/home/django/django_pyas2/manage.py', 'sendas2message', u'mycompanyAS2', u'mendelsontestAS2', u'/tmp/test.txtqMpVir']"
System check identified some issues:

WARNINGS:
?: (1_6.W001) Some project unittests may not execute as expected.
HINT: Django 1.6 introduced a new default test runner. It looks like this project was generated using Django 1.5 or earlier. You should ensure your tests are all running & behaving as expected. See https://docs.djangoproject.com/en/dev/releases/1.6/#new-test-runner for more information.

This may be because the mendelson test server requires messages to be signed, but from the my server's output, it seems that the uploaded test file is not being retrieved when pyas2 is sending the message. Checking the tmp folder, I am able to see all of the files I have uploaded.

So right now I am able to send an unsigned encrypted message to Mendelson's test server, but with no data. Again, I am not able to send a signed message because of the certificate issues above.

I am using:

  • Ubuntu 14.04 (all software is installed globally ~ no virtualenv)
  • python 2.7
  • Django 1.7.8
  • cherryPy 3.7.0

Thank you for any input you may be able to provide and thank you for the software. :)

Getting Python error when trying to send message

Hello,

I installed 2 pyas2 server and configured them based on the documentation.

When I try to send Messages I get the same error on both systems shown in the logs:

20171108 08:00:19 ERROR : Failed to send message, error:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/pyas2/management/commands/sendas2message.py", line 73, in handle
as2lib.send_message(message, payload)
File "/usr/local/lib/python2.7/dist-packages/pyas2/as2lib.py", line 459, in send_message
u'command "retryfailedas2comms".' % e))
TypeError: str returned non-string (type Error)

Any Idea to what would cause this?

Thank you.

Alex

Add support for text/CSV

Hey I'd like to add support for csv files; I'll open a PR in a second. Would appreciate feedback and advice for implementing it.

"python <defunct>" jobs when multiple files are sent to pyas2

When pyas2 picks up one file at a time I have no problems. When multiple files are put in the outbound folder it sometimes doesn't process them until I "touch" all the files to update the timestamp. When it does process them as a batch I'm left with a "python " job for each file. After several defunct jobs build up I have to restart pyas2 for it to function automatically again.
Python 2.7 on Oracle Linux 6.10

Payload not viewable after signature verification error

When receiving a message from a partner I get an error: Signature Verification Failed, exception message is certificate verify error.

I can see the MDN I sent back, but the original incoming message isn't saved to a file, and isn't viewable in messages page.

Setting up pyAS2 on Ubuntu

Since I can't get it to work on Windows I figure I try on Ubuntu. I'm a newby to Linux to bear with me.

I have everything setup up until I need to run the following

python manage.py migrate

I get

python: can't open file 'manage.py': [Errno 2] No such file or directory

Does not help either when I change the path to /usr/local/lib/python2.7/dist-packages/django or /usr/local/lib/python2.7/dist-packages/pyas2

Cherrypy

Cherrypy is also a dependency, should be added in the documentation.

Unbale to send message when moving the code to docker.

Hi,

My issue, i moved the code the 2 docker files thus i having 2 Dockerfiles for servers P1 and P2.

Runs the servers in 8000:8000 and 8001:8001
Setup all the private and public keys.

Issue: After sending message from P1 to P2 it will become 302.

"POST /pyas2/as2send/?partner_id=p2as2 HTTP/1.1" 302 0

Detailed Status:


Failed to send message, error:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 160, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw
File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 84, in create_connection
raise err
File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 74, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 677, in urlopen
chunked=chunked,
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 392, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/usr/local/lib/python3.7/http/client.py", line 1252, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1298, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1247, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1026, in _send_output
self.send(msg)
File "/usr/local/lib/python3.7/http/client.py", line 966, in send
self.connect()
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 187, in connect
conn = self._new_conn()
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 172, in _new_conn
self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fc677d1bb10>: Failed to establish a new connection: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 725, in urlopen
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 439, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=8001): Max retries exceeded with url: /pyas2/as2receive (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fc677d1bb10>: Failed to establish a new connection: [Errno 111] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/pyas2/models.py", line 455, in send_message
verify=self.partner.https_verify_ssl,
File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 119, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8001): Max retries exceeded with url: /pyas2/as2receive (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fc677d1bb10>: Failed to establish a new connection: [Errno 111] Connection refused'))

Message Headers

MIME-Version: 1.0
Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type="enveloped-data"
Content-Disposition: attachment; filename="smime.p7m"
Content-Transfer-Encoding: binary
AS2-Version: 1.2
ediint-features: CMS
Message-ID: <159041045534.11.5296431718618859051@685fa7993bd5>
AS2-From: p1as2
AS2-To: p2as2
Subject: EDI Message sent using pyas2
Date: Mon, 25 May 2020 12:40:55 +0000
disposition-notification-to: [email protected]

Add header field "From: "

When sending a message to the partner, the field "From: " should be added with the e-mail address visible in the organization.

Please refer to this example (A.4) from the RFC:

AS2-Version: 1.1
Mime-Version: 1.0
Recipient-Address: http://10.240.1.2:8201/exchange/as2_company
AS2-To: as2_company
AS2-From: "AS2 Test"
Subject: Your Requested MDN Response
From: [email protected]

when installing pyas2 from pip installation steps fail at manage.py command

I'm following the directions here:

https://pyas2.readthedocs.io/en/latest/installation.html

I'm on an Amazon Linux EC2 system. I am trying to run the pip install command in my activated python 2.7 virtualenv:

virtualenv -p `which python2.7` venv
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in /home/ec2-user/environment/pyas2_test/venv/bin/python2.7
Also creating executable in /home/ec2-user/environment/pyas2_test/venv/bin/python
Installing setuptools, pip, wheel...
done.

Then I activate the env and install with pip:

source venv/bin/activate

pip install pyas2
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Collecting pyas2
Collecting cherrypy<=8.9.1,>6 (from pyas2)
  Using cached https://files.pythonhosted.org/packages/9d/c2/8a19081b3ded7b5f497ba132055ba665188432be02512d80cd7ac93c86d6/CherryPy-8.9.1-py2.py3-none-any.whl
Collecting pyasn1 (from pyas2)
  Using cached https://files.pythonhosted.org/packages/7b/7c/c9386b82a25115cccf1903441bba3cbadcfae7b678a20167347fa8ded34c/pyasn1-0.4.5-py2.py3-none-any.whl
Collecting requests (from pyas2)
  Using cached https://files.pythonhosted.org/packages/7d/e3/20f3d364d6c8e5d2353c72a67778eb189176f08e873c9900e10c0287b84b/requests-2.21.0-py2.py3-none-any.whl
Collecting m2crypto (from pyas2)
Collecting django<=1.10.6,>1.9 (from pyas2)
  Using cached https://files.pythonhosted.org/packages/b9/bb/723f78e6f6aea78590331eba4e42b8a09c33ce154204a942525a91101d0b/Django-1.10.6-py2.py3-none-any.whl
Collecting six (from cherrypy<=8.9.1,>6->pyas2)
  Using cached https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests->pyas2)
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting idna<2.9,>=2.5 (from requests->pyas2)
  Using cached https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests->pyas2)
  Using cached https://files.pythonhosted.org/packages/9f/e0/accfc1b56b57e9750eba272e24c4dddeac86852c2bebd1236674d7887e8a/certifi-2018.11.29-py2.py3-none-any.whl
Collecting urllib3<1.25,>=1.21.1 (from requests->pyas2)
  Using cached https://files.pythonhosted.org/packages/62/00/ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/urllib3-1.24.1-py2.py3-none-any.whl
Collecting typing (from m2crypto->pyas2)
  Using cached https://files.pythonhosted.org/packages/cc/3e/29f92b7aeda5b078c86d14f550bf85cff809042e3429ace7af6193c3bc9f/typing-3.6.6-py2-none-any.whl
Installing collected packages: six, cherrypy, pyasn1, chardet, idna, certifi, urllib3, requests, typing, m2crypto, django, pyas2
Successfully installed certifi-2018.11.29 chardet-3.0.4 cherrypy-8.9.1 django-1.10.6 idna-2.8 m2crypto-0.31.0 pyas2-0.4.3 pyasn1-0.4.5 requests-2.21.0 six-1.12.0 typing-3.6.6 urllib3-1.24.1

I can see it successfully install pyas2, django and m2crypto but when I open the python shell and try an import of pyas2 I get:

python
Python 2.7.15 (default, Nov 28 2018, 22:38:08) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyas2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pyas2
>>> 

following the steps in the installation doc I can create the django project but when I try to run the manage.py migrate command I get the following error:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute
    django.setup()
  File "/usr/local/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/usr/local/lib/python2.7/site-packages/django/apps/config.py", line 94, in create
    module = import_module(entry)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named pyas2

Unwilling to be beaten I tried downloading the package from pypi and running the setup.py in the download:

https://pypi.org/project/pyAS2/#files

if I run it with the setup.py install --user command it seems to install successfully and I'm able to import pyas2 in the python shell.

I'm also able to continue the setup process and the python manage.py migrate command runs as you'd expect.

python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, pyas2, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying pyas2.0001_initial... OK
  Applying pyas2.0002_partner_compress... OK
  Applying pyas2.0003_auto_20150311_1141... OK
  Applying pyas2.0004_auto_20150311_1258... OK
  Applying pyas2.0005_message_compressed... OK
  Applying pyas2.0006_auto_20150313_0548... OK
  Applying pyas2.0007_auto_20150313_0707... OK
  Applying pyas2.0008_auto_20150317_0450... OK
  Applying pyas2.0009_auto_20150317_1324... OK
  Applying pyas2.0010_auto_20150416_0745... OK
  Applying pyas2.0011_auto_20150427_1029... OK
  Applying pyas2.0012_auto_20151006_0526... OK
  Applying pyas2.0013_auto_20160307_0233... OK
  Applying pyas2.0014_auto_20160420_0515... OK
  Applying pyas2.0015_auto_20160615_0409... OK
  Applying pyas2.0016_auto_20161004_0543... OK
  Applying pyas2.0017_auto_20170404_0730... OK
  Applying pyas2.0018_auto_20180109_0942... OK
  Applying pyas2.0019_auto_20180127_0509... OK
  Applying sessions.0001_initial... OK

I'm ok with this for the time being but I'm curious about why the pip install doesn't work. I'm not sure where the import issue is but I'll research more and see if I can find a fix. If someone else can think of another fix to allow me to install with pip so I can put this in my virtualenv I'd appreciate the help.

If it's something obvious I'm missing I'd be happy to update the documentation with details to get around it.

Thanks for this package by the way! I'm thrilled to start using it.

Binary payload

Hi,

At the moment, we can't use pyas2 with one of our client because signing failed with binary payload. Is Could you implement binary payload?

Thanks

partner public key using Go Daddy chained certificate doesn't seem to work

Sorry this isn't really a bug but I do not know where else to ask the question

I have a trading partner using their Go Daddy web certificate to sign messages in thier MS Biztalk server

When I load just their certificate in pem format, decode fails with this error:

An error occurred during the AS2 message processing: Signature Verification Failed, exception message is certificate verify error

I see that their certificate uses a chain file. When I try loading the 'gd_intermediate' certificate into "Local CA Store", decoding still fails.

This is a huge company, an M$ only shop, I doubt I can get them to change their certificate. Do you have any idea how I can get PyAS2 to work with their existing Go Daddy certificate?

Thanks for any suggestions..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.