UNPKG

@tldraw/editor

Version:

tldraw infinite canvas SDK (editor).

31 lines (28 loc) 766 B
/* Convert a string into an ArrayBuffer from https://developers.google.com/web/updates/2012/06/How-to-convert-ArrayBuffer-to-and-from-String */ export function str2ab(str: string) { const buf = new ArrayBuffer(str.length) const bufView = new Uint8Array(buf) for (let i = 0, strLen = str.length; i < strLen; i++) { bufView[i] = str.charCodeAt(i) } return buf } export function importPublicKey(pemContents: string) { // base64 decode the string to get the binary data const binaryDerString = atob(pemContents) // convert from a binary string to an ArrayBuffer const binaryDer = str2ab(binaryDerString) return crypto.subtle.importKey( 'spki', new Uint8Array(binaryDer), { name: 'ECDSA', namedCurve: 'P-256', }, true, ['verify'] ) }