Initial Code
First Commit
This commit is contained in:
23
generate.py
Executable file
23
generate.py
Executable file
@@ -0,0 +1,23 @@
|
||||
from cryptography.hazmat.primitives import serialization
|
||||
import base64
|
||||
|
||||
def base64url_encode(data: bytes) -> str:
|
||||
return base64.urlsafe_b64encode(data).decode('utf-8').rstrip('=')
|
||||
|
||||
# Load PEM public key
|
||||
with open("vapid_public.pem", "rb") as f:
|
||||
pem_data = f.read()
|
||||
|
||||
public_key = serialization.load_pem_public_key(pem_data)
|
||||
|
||||
# Extract the raw uncompressed public key bytes (0x04 + X + Y)
|
||||
public_numbers = public_key.public_numbers()
|
||||
x_bytes = public_numbers.x.to_bytes(32, 'big')
|
||||
y_bytes = public_numbers.y.to_bytes(32, 'big')
|
||||
uncompressed_key = b'\x04' + x_bytes + y_bytes
|
||||
|
||||
# Base64url encode the uncompressed key bytes
|
||||
public_key_b64url = base64url_encode(uncompressed_key)
|
||||
|
||||
print("Base64url-encoded public key (use in frontend):")
|
||||
print(public_key_b64url)
|
||||
Reference in New Issue
Block a user