UNPKG

@gleif-it/did-webs-ts

Version:
15 lines (14 loc) 633 B
import * as secp from '@noble/secp256k1'; import { base64UrlToBytes } from '../conversions/base64UrlToBytes.js'; import { bytesToBase64Url } from '../conversions/bytesToBase64Url.js'; export const computeXAndYForSecp256k1 = (compressedKey) => { const bytes = base64UrlToBytes(compressedKey); const hexKey = secp.etc.bytesToHex(bytes); const point = secp.ProjectivePoint.fromHex(hexKey); // Decompresses the point internally const rawX = secp.etc.numberToBytesBE(point.x); const rawY = secp.etc.numberToBytesBE(point.y); return { x: bytesToBase64Url(rawX), y: bytesToBase64Url(rawY), }; };