def METHOD_NAME(self, public_key, blob):
    # Import the Public Key and use for encryption using PKCS1_OAEP
    rsa_key = RSA.importKey(public_key)
    rsa_key = PKCS1_OAEP.new(rsa_key)
    # compress the data first
    blob = zlib.compress(blob)
    """In determining the chunk size, determine the private key length used in bytes and subtract 42 bytes 
    (when using PKCS1_OAEP). The data will be in encrypted in chunks"""
    chunk_size = 470
    offset = 0
    end_loop = False
    encrypted = b""
    while not end_loop:
        # The chunk
        chunk = blob[offset : offset + chunk_size]
        # If the data chunk is less then the chunk size, then we need to add
        # padding with " ". This indicates the we reached the end of the file
        # so we end loop here
        if len(chunk) % chunk_size != 0:
            end_loop = True
            chunk += b"" * (chunk_size - len(chunk))
        # Append the encrypted chunk to the overall encrypted file
        encrypted += rsa_key.METHOD_NAME(chunk)
        # Increase the offset by chunk size
        offset += chunk_size
    # Base 64 encode the encrypted file
    return base64.b64encode(encrypted)