示例#1
0
    def test_partner_checks(self):
        """Test the checks for the partner on initialization."""
        with self.assertRaises(ImproperlyConfigured):
            as2.Partner("a partner", digest_alg="xyz")

        with self.assertRaises(ImproperlyConfigured):
            as2.Partner("a partner", enc_alg="xyz")

        with self.assertRaises(ImproperlyConfigured):
            as2.Partner("a partner", mdn_mode="xyz")

        with self.assertRaises(ImproperlyConfigured):
            as2.Partner("a partner", mdn_digest_alg="xyz")
示例#2
0
    def test_verify_certificate(self):
        """ Test case where we have try to load an expired cert  """

        # First test with a certificate with invalid root
        cert_path = os.path.join(TEST_DIR, 'verify_cert_test1.pem')
        with open(cert_path, 'rb') as cert_file:
            try:
                as2.Partner(
                    as2_name='some_partner',
                    verify_cert=cert_file.read()
                )
            except as2.AS2Exception as e:
                self.assertIn(
                    'unable to get local issuer certificate', str(e))

        # Test with an expired certificate
        cert_path = os.path.join(TEST_DIR, 'verify_cert_test2.cer')
        with open(cert_path, 'rb') as cert_file:
            try:
                as2.Partner(
                    as2_name='some_partner',
                    verify_cert=cert_file.read()
                )
            except as2.AS2Exception as e:
                self.assertIn(
                    'certificate has expired', str(e))

        # Test with a chain certificate
        cert_path = os.path.join(TEST_DIR, 'verify_cert_test3.pem')
        with open(cert_path, 'rb') as cert_file:
            try:
                as2.Partner(
                    as2_name='some_partner',
                    verify_cert=cert_file.read()
                )
            except as2.AS2Exception as e:
                self.assertIn(
                    'unable to get local issuer certificate', str(e))

        # Test chain certificate with the ca
        cert_ca_path = os.path.join(TEST_DIR, 'verify_cert_test3.ca')
        with open(cert_path, 'rb') as cert_file:
            with open(cert_ca_path, 'rb') as cert_ca_file:
                try:
                    as2.Partner(
                        as2_name='some_partner',
                        verify_cert=cert_file.read(),
                        verify_cert_ca=cert_ca_file.read()
                    )
                except as2.AS2Exception as e:
                    self.fail('Failed to load chain certificate: %s' % e)
示例#3
0
    def test_message_checks(self):
        """Test the checks and other features of Message."""
        msg = as2.Message()
        assert msg.content == ""
        assert msg.headers == {}
        assert msg.headers_str == b""

        msg.payload = message.Message()
        msg.payload.set_payload(b"data")
        assert msg.content == b"data"

        org = as2.Organization(as2_name="AS2 Server")
        partner = as2.Partner(as2_name="AS2 Partner", sign=True)
        msg = as2.Message(sender=org, receiver=partner)
        with self.assertRaises(ImproperlyConfigured):
            msg.build(b"data")

        msg.receiver.sign = False
        msg.receiver.encrypt = True
        with self.assertRaises(ImproperlyConfigured):
            msg.build(b"data")

        msg.receiver.encrypt = False
        msg.receiver.mdn_mode = "ASYNC"
        with self.assertRaises(ImproperlyConfigured):
            msg.build(b"data")

        msg.sender.mdn_url = "http://localhost/pyas2/as2receive"
        msg.build(b"data")
示例#4
0
 def setUp(self):
     self.org = as2.Organization(as2_name='some_organization',
                                 sign_key=self.private_key,
                                 sign_key_pass='******',
                                 decrypt_key=self.private_key,
                                 decrypt_key_pass='******')
     self.partner = as2.Partner(as2_name='some_partner',
                                verify_cert=self.public_key,
                                encrypt_cert=self.public_key)
示例#5
0
 def setUp(self):
     self.org = as2.Organization(
         as2_name="some_organization",
         sign_key=self.private_key,
         sign_key_pass="******",
         decrypt_key=self.private_key,
         decrypt_key_pass="******",
     )
     self.partner = as2.Partner(
         as2_name="some_partner",
         verify_cert=self.public_key,
         encrypt_cert=self.public_key,
     )
示例#6
0
    def setUp(self):
        self.org = as2.Organization(as2_name='pyas2lib',
                                    sign_key=self.private_key,
                                    sign_key_pass='******',
                                    decrypt_key=self.private_key,
                                    decrypt_key_pass='******')

        self.partner = as2.Partner(as2_name='pyas2idev',
                                   verify_cert=self.oldpyas2_public_key,
                                   encrypt_cert=self.oldpyas2_public_key,
                                   mdn_mode=as2.SYNCHRONOUS_MDN,
                                   mdn_digest_alg='sha256')
        self.out_message = None
示例#7
0
    def setUp(self):
        self.org = as2.Organization(
            as2_name="pyas2lib",
            sign_key=self.private_key,
            sign_key_pass="******",
            decrypt_key=self.private_key,
            decrypt_key_pass="******",
        )

        self.partner = as2.Partner(
            as2_name="mecas2",
            verify_cert=self.mecas2_public_key,
            encrypt_cert=self.mecas2_public_key,
            mdn_mode=as2.SYNCHRONOUS_MDN,
            mdn_digest_alg="sha256",
        )
        self.out_message = None
示例#8
0
 def setUp(self):
     self.org = as2.Organization(
         as2_name="AS2 Server",
         sign_key=self.oldpyas2_private_key,
         sign_key_pass="******",
         decrypt_key=self.oldpyas2_private_key,
         decrypt_key_pass="******",
     )
     self.partner = as2.Partner(
         as2_name="Sterling B2B Integrator",
         verify_cert=self.sb2bi_public_key,
         verify_cert_ca=self.sb2bi_public_ca,
         encrypt_cert=self.sb2bi_public_key,
         encrypt_cert_ca=self.sb2bi_public_ca,
     )
     self.partner.load_verify_cert()
     self.partner.load_encrypt_cert()