def vk_mainloop(vk, bot): """Обрабатываем сообщения, пришедшие боту в ВК.""" for vk_message in vk.listen(): # print(vk_message) if vk_message['from_id'] < 0: continue if vk_message['text'] in cd_tg_dict: if vk_message['from_id'] in vk_tg_dict: tg_vk_dict.pop(vk_tg_dict[vk_message['from_id']]) vk_tg_dict[vk_message['from_id']] = cd_tg_dict[vk_message['text']] tg_vk_dict[cd_tg_dict[vk_message['text']]] = vk_message['from_id'] tg_cd_dict.pop(cd_tg_dict[vk_message['text']]) cd_tg_dict.pop(vk_message['text']) vk.send_message(VK_SUCCESS_REGISTRATION_MESSAGE, vk_message['from_id']) continue if vk_message['from_id'] not in vk_tg_dict: vk.send_message(VK_FAILED_REGISTRATION_MESSAGE + bot.link, vk_message['from_id']) continue message = ConvertedForwardedMessages(vk_message) # vk.send_message(f'В какой чат переслать {message.num_messages_to_send} сообщений?', # vk_message['from_id'], # vk_message['id']) sig = Signer(vk.get_names(message.author_ids), date_format=DATE_FORMAT) num = message.send(bot, vk_tg_dict[vk_message['from_id']], sig) vk.send_message( f'Доставлено {num} из {message.num_messages_to_send} сообщений', vk_message['from_id'], vk_message['id'])
def resign(input_path, certificate, key, apple_cert, provisioning_profile, output_path): """ Unified interface to extract any kind of archive from a temporary file, resign it with these credentials, and create a similar archive for that resigned app """ if not exists(input_path): raise IOError("{0} not found".format(input_path)) signer = Signer(signer_cert_file=certificate, signer_key_file=key, apple_cert_file=apple_cert) temp_dir = None try: archive = archive_factory(input_path) (temp_dir, bundle) = archive.unarchive_to_temp() process_watchkit(bundle.path, REMOVE_WATCHKIT) bundle.resign(signer, provisioning_profile) archive.__class__.archive(temp_dir, output_path) except NotSignable as e: msg = "Not signable: <{0}>: {1}\n".format(input_path, e) log.info(msg) raise finally: if temp_dir is not None and isdir(temp_dir): shutil.rmtree(temp_dir)
def resign(input_path, certificate, key, apple_cert, provisioning_profile, output_path): if not exists(input_path): raise IOError("{0} not found".format(input_path)) signer = Signer(signer_cert_file=certificate, signer_key_file=key, apple_cert_file=apple_cert) temp_dir = None try: appArchive = app_archive_factory(input_path) (temp_dir, app) = appArchive.unarchive_to_temp() app.resign(signer, provisioning_profile) appArchive.__class__.archive(temp_dir, output_path) except NotSignable as e: msg = "Not signable: <{0}>: {1}\n".format(input_path, e) log.info(msg) raise finally: if temp_dir is not None and isdir(temp_dir): shutil.rmtree(temp_dir)
def resign(args): """ Given a tuple consisting of a path to an uncompressed archive, credential directory, and desired output path, resign accordingly. Returns a tuple of (cred_dir, path to resigned app) """ ua, cred_dir, resigned_path = args try: log.debug('resigning with %s %s -> %s', ua.path, cred_dir, resigned_path) # get the credential files, create the 'signer' credential_paths = isign.get_credential_paths(cred_dir) signer = Signer(signer_cert_file=credential_paths['certificate'], signer_key_file=credential_paths['key'], apple_cert_file=isign.DEFAULT_APPLE_CERT_PATH) # sign it (in place) ua.bundle.resign(signer, credential_paths['provisioning_profile']) log.debug("outputing %s", resigned_path) # and archive it there ua.archive(resigned_path) finally: ua.remove() return (cred_dir, resigned_path)
def setup(self): pfx_filepath = '../pem/PM_700000000000001_acp.pfx' x509_filepath = '../pem/verify_sign_acp.cer' password = '******' self.signer = Signer( pfx_filepath, password, x509_filepath, )
def __init__(self, credentials, region): self.credentials = credentials self.region = region self.namespace = "" self.datestamp = None self.aws_timestamp = None self.payload = "" # for HTTP GET payload is always empty self.querystring_builder = QuerystringBuilder() self.signer = Signer(credentials, region, self._SERVICE, self._ALGORITHM)
def run(self): key = self.text_key.get() confirmed_key = self.text_confirm_key.get() if key == confirmed_key: license_maker = Signer(key, self.list_log) else: time_stamp = datetime.now().strftime("%y/%m/%d %H:%M:%S.%f")[:-4] self.list_log.insert( tk.END, f"{time_stamp} Fatal error: the keys do not match")
def initialize_topology(number_signers, number_keys_per_signer=32): signers = [User_Node(i) for i in range(number_signers)] s = Server(number_signers, signers) r = Repository(s) r.latest_summary = s.summary r.commitments.append(s.summary) S = [] for i in range(number_signers): S.append(Signer(number_keys_per_signer)) S[i].register(s) return s, S, r
def resign(input_path, deep, certificate, key, apple_cert, provisioning_profile, output_path, info_props=None, alternate_entitlements_path=None): """ Unified interface to extract any kind of archive from a temporary file, resign it with these credentials, and create a similar archive for that resigned app """ if not exists(input_path): raise IOError("{0} not found".format(input_path)) if key == None: log.debug('Signing ad-hoc') signer = AdhocSigner() else: log.debug('Signing with apple_cert: {}'.format(apple_cert)) log.debug('Signing with key: {}'.format(key)) log.debug('Signing with certificate: {}'.format(certificate)) log.debug('Signing with provisioning_profile: {}'.format(provisioning_profile)) signer = Signer(signer_cert_file=certificate, signer_key_file=key, apple_cert_file=apple_cert) ua = None bundle_info = None try: archive = archive_factory(input_path) if archive is None: raise NotSignable('No matching archive type found') ua = archive.unarchive_to_temp() if info_props: # Override info.plist props of the parent bundle ua.bundle.update_info_props(info_props) ua.bundle.resign(deep, signer, provisioning_profile, alternate_entitlements_path) bundle_info = ua.bundle.info ua.archive(output_path) except NotSignable as e: msg = "Not signable: <{0}>: {1}\n".format(input_path, e) log.info(msg) raise finally: if ua is not None: ua.remove() return bundle_info
def user_masquerades_as_another(): number_signers = 4 number_keys_per_signer = 8 print "================= User masquerades as other user =================" signers = [User_Node(i) for i in range(number_signers)] s = Server(number_signers, signers) r = Repository(s) r.latest_summary = s.summary r.commitments.append(s.summary) S = [] for i in range(number_signers): S.append(Signer(number_keys_per_signer)) S[i].register(s) S[0].sign_message("Not my message", s, r, i=2)
def testSign_head_multiValues(self): signer = Signer(self.logger) self.header['x-jdcloud-nonce'] = ["aaa"] signer.signV3(method=self.method, region=self.region, host=self.host, path=self.ori_path, query=self.query, headers=self.header, data="", credential=self.credential, security_token="", service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=12ed9fbf2f8ebe6afcdd23853c9e58f37642f8a0361765557d2e4915f1e995e4' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_query_specialCharacters0(self): signer = Signer(self.logger) query = '?special key=/ /`!@#$%^*()+/0123456789/[]\\;\',<>?:"{}|/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/-_.~&/ /`!@#$%^*()+/0123456789/[]\\;\',<>?:"{}|/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/-_.~=special value' signer.signV3(method=self.method, region=self.region, host=self.host, path=self.ori_path, query=query[1:], headers=self.header, data="", credential=self.credential, security_token="", service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=684a4397896f81eaefbba29c42be66080b32993dce700e1647608a64595fd655' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_head_one_blank(self): signer = Signer(self.logger) self.header['x-jdcloud-nonce'] = ' X-Jdcloud- -Nonce ' signer.signV3(method=self.method, region=self.region, host=self.host, path=self.ori_path, query=self.query, headers=self.header, data="", credential=self.credential, security_token="", service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=5d955d1de475eac2b4378473ca0adce8fddd13f45d2be53bc2ffb6eee6450ba4' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_head_more_blank(self): signer = Signer(self.logger) self.header['x-jdcloud-nonce'] = ' X-Jdcloud- -Nonce ' signer.signV3(method=self.method, region=self.region, host=self.host, path=self.ori_path, query=self.query, headers=self.header, data="", credential=self.credential, security_token="", service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=a03bb8d755cb93e4d8846fe5fcad180f319fa50356f63e8afdc749bd1a95695f' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_path_partEncode(self): signer = Signer(self.logger) ori_path = '/v1%2Fregions/cn-north-1%2F%2F%2Finstances' signer.signV3(method=self.method, region=self.region, host=self.host, path=ori_path, query=self.query, headers=self.header, data='', credential=self.credential, security_token='', service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=33df199719f9edc6de860e6b53c61d4824e1f389e6030fd37ddc977fda29e467' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_query_chinese(self): signer = Signer(self.logger) query = '?中文参数=中文参数值' signer.signV3(method=self.method, region=self.region, host=self.host, path=self.ori_path, query=query[1:], headers=self.header, data="", credential=self.credential, security_token="", service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=7e3094d23adde49fcc99b7d0de911d7ecaa7767590edd57769d7bdbaca919276' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def setup(self, pw = None): info('controller', 'setup') self.receiver = Receiver() self.sender = Sender() self.signer = Signer(pw) info('controller', 'sender process') self.sendPipe, sendPipe = mp.Pipe() self.senderProcess = mp.Process(target=self.sender.start, name='sender', args=(sendPipe,)) info('controller', 'signer process') self.signPipe, signPipe = mp.Pipe() self.signerProcess = mp.Process(target=self.signer.start, name='signer', args=(signPipe,)) info('controller', 'receiver process') self.receivePipe, receivePipe = mp.Pipe() self.receiverProcess = mp.Process(target=self.receiver.start, name='receiver', args=(receivePipe,))
def testSign_query_partEncode(self): signer = Signer(self.logger) query = '? =blank&%20=blank&+= 2&%2b= 1&blank= &blank=+&blank=%20' signer.signV3(method=self.method, region=self.region, host=self.host, path=self.ori_path, query=query[1:], headers=self.header, data="", credential=self.credential, security_token="", service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=78c0a4db84050d773533c78c1a0f73bf974faf5df881e39b18c3e0de8110324e' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_head_special_characters1(self): signer = Signer(self.logger) self.header['x-jdcloud-nonce'] = ' \\n as\\r\\n \\r df\\r\\n ' signer.signV3(method=self.method, region=self.region, host=self.host, path=self.ori_path, query=self.query, headers=self.header, data="", credential=self.credential, security_token="", service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=b30037126cdc4385e957e24e6d73ea28a8fb66f71ee68b8f60de12d3292d19c6' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_query_repeatQueryquery(self): signer = Signer(self.logger) query = '?aa=aa&aa%3Daa=&aa=aa%3D&aa=&aa=aaa&aaa=aaa&aaa=aa&aaa=a&ab=aa&ab=aa&cc=&cc=&bb=aa&bb=' signer.signV3(method=self.method, region=self.region, host=self.host, path=self.ori_path, query=query[1:], headers=self.header, data='', credential=self.credential, security_token='', service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=8ccc3c9af11e964b3c5d6020d2af49e97e27fbb23e2b8f57bdc84815e471d54b' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_query_nullKeyAndValue(self): signer = Signer(self.logger) query = '?=&a=a' signer.signV3(method=self.method, region=self.region, host=self.host, path=self.ori_path, query=query[1:], headers=self.header, data='', credential=self.credential, security_token='', service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=43efb5fb00e86faf35d8bf0bed3b72e84cfc98ee4754065e29c3caa7bcaa12cb' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_path_partEncode_includeSpecialChar(self): signer = Signer(self.logger) ori_path = '/v1%2Fregions/cn-north-1%2F%2F%2Finstances/ + /+/ +/+ /%2B%20%2B%2F%2F' signer.signV3(method=self.method, region=self.region, host=self.host, path=ori_path, query=self.query, headers=self.header, data='', credential=self.credential, security_token='', service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=7286237483a7fcc51ff7621c9a5c586a0ec85fd06cbf91c20adde2ec3b5e4d97' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_path_wrongPercentEncode(self): signer = Signer(self.logger) ori_path = '/v1/%2/%2f/%2b%f' signer.signV3(method=self.method, region=self.region, host=self.host, path=ori_path, query=self.query, headers=self.header, data='', credential=self.credential, security_token='', service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=6610271450ea321baab326f8debc51a2e4dd7e73b04200275a1d9b3897045caf' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_query_wrongPercentEncode(self): signer = Signer(self.logger) query = '? =blank&%2=blank&+=jia0&%2b=jia1&%2B=jia2&blank= %2b%2f%2/&blank=+&%2/blank=%0%f' signer.signV3(method=self.method, region=self.region, host=self.host, path=self.ori_path, query=query[1:], headers=self.header, data="", credential=self.credential, security_token="", service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=972987a6f95be456935cde8be8f106114e2ad27465a507644e61f021a98a7218' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_path_specialCharacters(self): signer = Signer(self.logger) ori_path = '/v1/regions/cn-north-1/instances/ /`!@#$%^&*()=+/0123456789/[]\\;\',<>?:"{}|/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/-_.~:GET' signer.signV3(method=self.method, region=self.region, host=self.host, path=ori_path, query=self.query, headers=self.header, data='', credential=self.credential, security_token='', service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=925b9455228ef23ee7ec2dd3e33f7e645bcbcb3f4732894c17e4a0cf1d41d1e6' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_path_encode(self): signer = Signer(self.logger) ori_path = '/v1/regions/cn-north-1/instances/%20/%60%21%40%23%24%25%5E%26%2A%28%29%3D%2B/0123456789/%5B%5D%5C%5C%3B%27%2C%3C%3E%3F%3A%5C%22%7B%7D%7C/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/-_.~%3AGET' signer.signV3(method=self.method, region=self.region, host=self.host, path=ori_path, query=self.query, headers=self.header, data='', credential=self.credential, security_token='', service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=027b5bbd35956b84b8773eb450c0405cb4e424eab13f64828926ee41838c48d0' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_head_special_characters0(self): signer = Signer(self.logger) self.header[ 'x-jdcloud-nonce'] = '/`!@#$%^&*()=+/0123456789/[]\\;\',<>?:"{}|/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/-_.~' signer.signV3(method=self.method, region=self.region, host=self.host, path=self.ori_path, query=self.query, headers=self.header, data="", credential=self.credential, security_token="", service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=9046b11889b993a808fccf1322f7f04e7e5a7e0cc22d8b65e9986a8aab986ad7' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_path_nullSlashes(self): signer = Signer(self.logger) ori_path = 'v1' signer.signV3(method=self.method, region=self.region, host=self.host, path=ori_path, query=self.query, headers=self.header, data='', credential=self.credential, security_token='', service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=92cd3ed582c13af58b4c81ddad150c350e656c6cc9e78ec154d7385e499b91b6' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_path_null(self): signer = Signer(self.logger) ori_path = '' signer.signV3(method=self.method, region=self.region, host=self.host, path=ori_path, query=self.query, headers=self.header, data='', credential=self.credential, security_token='', service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=44c5ec30b6185516986ae171d8276552bc0f37f6a536a44e4f578958fc1c12be' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)
def testSign_path_chineseCharacters(self): signer = Signer(self.logger) ori_path = '/v1/regions/cn-north-1/instances/中文:GET' signer.signV3(method=self.method, region=self.region, host=self.host, path=ori_path, query=self.query, headers=self.header, data='', credential=self.credential, security_token='', service=self.service_name) print(self.header.get(const.JDCLOUD_AUTH)) true_sign = 'JDCLOUD3-HMAC-SHA256 Credential=ak/20190917/cn-north-1/apigatewaytestproductline/jdcloud3_request, SignedHeaders=content-type;host;x-jdcloud-date;x-jdcloud-nonce, Signature=936ed2dcb6fb4271ad640e0f46f1fe61763a0bad8bb4f4eb1224261f969612fa' print(true_sign) self.assertTrue(self.header.get(const.JDCLOUD_AUTH) == true_sign)