this repo has no description
1import type { Key, RuntimeImplementation } from '@atproto/oauth-client' 2import { default as NativeModule } from './ExpoAtprotoAuthModule' 3import { generateJwk } from './expo-key' 4 5export class ExpoRuntimeImplementation implements RuntimeImplementation { 6 async createKey(algs: string[]): Promise<Key> { 7 if (!algs.includes('ES256')) { 8 throw TypeError('ES256 is the only supported algo') 9 } 10 // @ts-expect-error TODO: 11 return generateJwk('ES256') 12 } 13 14 getRandomValues(length: number): Uint8Array | PromiseLike<Uint8Array> { 15 return NativeModule.getRandomValues(length) 16 } 17 18 digest( 19 bytes: Uint8Array, 20 algorithim: { name: string } 21 ): Uint8Array | PromiseLike<Uint8Array> { 22 if (algorithim.name === 'sha256') { 23 return NativeModule.digest(bytes, algorithim.name) 24 } 25 26 throw new TypeError(`Unsupported algorithim: ${algorithim.name}`) 27 } 28}