summaryrefslogtreecommitdiffhomepage
path: root/packages/browser/src/helpers/toPublicKeyCredentialDescriptor.ts
blob: c37fed01381328806f9274be618312f1125db7e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import base64js from 'base64-js';
import type { PublicKeyCredentialDescriptorJSON } from '@simplewebauthn/typescript-types';

export default function toPublicKeyCredentialDescriptor(
  descriptor: PublicKeyCredentialDescriptorJSON,
): PublicKeyCredentialDescriptor {
  // Make sure the Base64'd credential ID length is a multiple of 4 or else toByteArray will throw
  const { id } = descriptor;
  const padLength = 4 - (id.length % 4);
  const paddedId = id.padEnd(id.length + padLength, '=');

  return {
    ...descriptor,
    id: base64js.toByteArray(paddedId),
  };
}