# -*- coding: utf-8 -*-
from Crypto import Random
from Crypto.PublicKey import RSA
import binascii
def ByteToHex( bins ):
    """
    Convert a byte string to it's hex string representation e.g. for output.
    """
    return ''.join( [ "%02X" % x for x in bins ] ).strip()
def HexToByte( hexStr ):
    """
    Convert a string hex byte values into a byte string. The Hex Byte values may
    or may not be space separated.
    """
    return bytes.fromhex(hexStr)
def generate():
    random_generator = Random.new().read
    rsa = RSA.generate(1024, random_generator)
    private_pem = rsa.exportKey()
    with open('private.pem', 'wb') as prikey:
        prikey.write(private_pem)
    with open('private.pem', 'rb') as prikey:
        rsa=RSA.importKey(prikey.read())
        data=rsa.publickey().exportKey()
        with open('public.pem','wb') as pubkey:
            pubkey.write(data)
def str_to_hex(s):
    return ' '.join([hex(ord(c)).replace('0x', '') for c in s])
if __name__ == '__main__':
    pubkey = b'''-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEfqttNKA2ZkBkcFIBwd0+NmWI
+9E3128tp0cquT5NToxvMh4clyu1sWSouR7xxkXnTM2lqAF0Yt81iWOz13C7CNi7
tUoveN5iGqes3aLlj7Ee0T3SiEI1LISPRP4iy60lIBuG9ICi+dxREoVEdj6ub5zL
tG3idI93u4MI9APdAwIDAQAB
-----END PUBLIC KEY-----'''
    #generate()
    pubkey1=binascii.hexlify(pubkey)
    with open ('public.pem','rb') as file:
        data=file.read()
        pubkey2=binascii.hexlify(data)
    with open ("ObjectModule.dll","rb") as file1:
        data=(file1.read())
        data=binascii.hexlify(data)
        data.replace(pubkey1,pubkey2)
        with open("ObjectModule_new.dll", "wb") as file2:
            file2.write(data)