54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
import base64
|
|
import requests
|
|
from cryptography.hazmat.primitives import hashes
|
|
from cryptography.hazmat.primitives.asymmetric import padding
|
|
from cryptography.hazmat.primitives import serialization
|
|
|
|
# Caminhos dos arquivos
|
|
private_key_path = "/home/joaomonezi/Consultme/private_key.pem"
|
|
public_key_path = "public_key.pem"
|
|
|
|
# 1. Carregar chave privada do negócio
|
|
with open(private_key_path, "rb") as key_file:
|
|
private_key = serialization.load_pem_private_key(
|
|
key_file.read(),
|
|
password=None, # coloque a senha aqui se sua chave for protegida
|
|
)
|
|
|
|
# 2. Ler conteúdo da chave pública do endpoint (que será assinada)
|
|
with open(public_key_path, "rb") as f:
|
|
public_key_data = f.read()
|
|
|
|
# 3. Assinar a chave pública com a chave privada
|
|
signature = private_key.sign(
|
|
public_key_data,
|
|
padding.PKCS1v15(),
|
|
hashes.SHA256()
|
|
)
|
|
|
|
# 4. Codificar assinatura em base64 para enviar na API
|
|
signature_b64 = base64.b64encode(signature).decode()
|
|
|
|
# 5. Chave pública em string para enviar (PEM format)
|
|
public_key_str = public_key_data.decode()
|
|
|
|
# 6. Montar JSON para upload
|
|
payload = {
|
|
"public_key": public_key_str,
|
|
"signature": signature_b64
|
|
}
|
|
|
|
# 7. Fazer upload via API (exemplo genérico, ajuste URL e headers)
|
|
api_url = "https://consultme.grupoginseng.com.br/v1/business/public_key"
|
|
headers = {
|
|
"Authorization": "EAAe3eozOvZCMBO5vngFSqhg823ohKbusZCz2kbkjsrOZAGcDOOnsXQcK17KGu8Gy6oANKHdpT0ZAIJ7422VtZClrdcGNugMXratBvct2xbyo1MuBHZAowFuJq2wsWYAXoR6jypNTuXsHcYwfTeojY5AXsBTOILQEmeqZClzZAvFL7ZBhf51Pku6P2TMAjFdPzeovDZCWtdTbfB4MNTOkDlxkwjSuDxl8ktxoCXH8C52p88azU2casUEqQZD",
|
|
"Content-Type": "application/json"
|
|
}
|
|
|
|
response = requests.post(api_url, json=payload, headers=headers)
|
|
|
|
if response.status_code == 200:
|
|
print("Chave pública assinada enviada com sucesso!")
|
|
else:
|
|
print(f"Erro no upload: {response.status_code} - {response.text}")
|