async function buildPublicKey(privateKey: CryptoKey): Promise<CryptoKey> {
    const crypto = getCrypto();
    // export private key to JWK
    const jwk = await crypto.subtle.exportKey("jwk", privateKey);
    // remove private data from JWK