orderSSL / getGoogleEAB.py
raannakasturi's picture
Upload 15 files
a21cd42 verified
raw
history blame
1.33 kB
import os
from dotenv import load_dotenv
from google.oauth2 import service_account
from google.cloud.security.publicca import PublicCertificateAuthorityServiceClient
def gen_google_eab_data():
load_dotenv()
data = {
"type": "service_account",
"project_id": os.getenv("PROJECT_ID"),
"private_key_id": os.getenv("PRIVATE_KEY_ID"),
"private_key": os.getenv("PRIVATE_KEY"),
"client_email": os.getenv("CLIENT_EMAIL"),
"client_id": os.getenv("CLIENT_ID"),
"auth_uri": os.getenv("AUTH_URI"),
"token_uri": os.getenv("TOKEN_URI"),
"auth_provider_x509_cert_url": os.getenv("AUTH_PROVIDER_X509_CERT_URL"),
"client_x509_cert_url": os.getenv("CLIENT_X509_CERT_URL"),
"universe_domain": os.getenv("UNIVERSE_DOMAIN")
}
return data
def gen_google_eab():
service_account_info = gen_google_eab_data()
credentials = service_account.Credentials.from_service_account_info(service_account_info)
client = PublicCertificateAuthorityServiceClient(credentials=credentials)
project_id = service_account_info['project_id']
parent = f"projects/{project_id}"
response = client.create_external_account_key(parent=parent)
kid = response.key_id
hmac = response.b64_mac_key
return kid, hmac