def _sign_agent_package(agent_package, **kwargs): '''Sign an agent package''' if not os.path.exists(agent_package): raise AgentPackageError('Invalid package {}'.format(agent_package)) cert_type = _cert_type_from_kwargs(**kwargs) files = _files_from_kwargs(**kwargs) certs_dir = kwargs.get('certs_dir', None) certsobj = None if certs_dir is not None: certsobj = certs.Certs(certs_dir) if cert_type == 'admin': if files: raise AgentPackageError("admin's aren't allowed to add files.") verified = auth.sign_as_admin(agent_package, 'admin', certsobj = certsobj) elif cert_type == 'creator': verified = auth.sign_as_creator(agent_package, 'creator', files, certsobj = certsobj) elif cert_type == 'initiator': verified = auth.sign_as_initiator(agent_package, 'initiator', files, certsobj = certsobj) elif cert_type == 'platform': verified = auth.sign_as_platform(agent_package, 'platform', files) else: raise AgentPackageError('Unknown packaging options') if verified: print('{} signed as {}'.format(agent_package, cert_type)) else: print('Verification of signing failed!')
def direct_sign_agentpackage_initiator(self, package, config_file, contract): assert (RESTRICTED), "Auth not available" files = {"config_file": config_file, "contract": contract} assert (auth.sign_as_initiator(package, 'initiator', files=files, certsobj=self.certsobj)), "Signing as {} failed.".format( 'initiator')
def test_signing(self): with self.assertRaises(auth.AuthError) as e: auth.sign_as_admin(self.wheel, self.admin_cert_name, certsobj=self.certsobj) #TODO: Create a wheel that is signed by creator but not by admin with self.assertRaises(auth.AuthError) as e: auth.sign_as_initiator(self.wheel, self.initiator_cert_name, certsobj=self.certsobj) z = zipfile.ZipFile(self.wheel) self.assertTrue(auth.sign_as_creator(self.wheel, self.creator_cert_name, certsobj=self.certsobj)) with self.assertRaises(auth.AuthError) as e: auth.sign_as_creator(self.wheel, self.creator_cert_name, certsobj=self.certsobj) print('---------------------------------',str(e)) self.assertEqual("package must be signed by creator and adminstrator first", str(e)) with self.assertRaises(auth.AuthError) as e: auth.sign_as_initiator(self.wheel, self.initiator_cert_name, certsobj=self.certsobj) self.assertTrue(auth.sign_as_admin(self.wheel, self.admin_cert_name, certsobj=self.certsobj)) with self.assertRaises(auth.AuthError) as e: auth.sign_as_admin(self.wheel, self.admin_cert_name, certsobj=self.certsobj) self.assertTrue(auth.sign_as_initiator(self.wheel, self.initiator_cert_name, certsobj=self.certsobj)) with self.assertRaises(auth.AuthError) as e: auth.sign_as_initiator(self.wheel, self.initiator_cert_name, certsobj=self.certsobj) #self.assertFalse(True) print('successful!')