diff options
Diffstat (limited to 'packages/server/src')
13 files changed, 52 insertions, 22 deletions
diff --git a/packages/server/src/assertion/generateAssertionOptions.test.ts b/packages/server/src/assertion/generateAssertionOptions.test.ts index 0208d9d..1a5aa9a 100644 --- a/packages/server/src/assertion/generateAssertionOptions.test.ts +++ b/packages/server/src/assertion/generateAssertionOptions.test.ts @@ -1,6 +1,6 @@ jest.mock('../helpers/generateChallenge'); -import generateAssertionOptions from './generateAssertionOptions'; +import { generateAssertionOptions } from './generateAssertionOptions'; test('should generate credential request options suitable for sending via JSON', () => { const challenge = 'totallyrandomvalue'; diff --git a/packages/server/src/assertion/generateAssertionOptions.ts b/packages/server/src/assertion/generateAssertionOptions.ts index 19bce91..3ed452b 100644 --- a/packages/server/src/assertion/generateAssertionOptions.ts +++ b/packages/server/src/assertion/generateAssertionOptions.ts @@ -8,7 +8,7 @@ import base64url from 'base64url'; import generateChallenge from '../helpers/generateChallenge'; -type Options = { +export type GenerateAssertionOptions = { allowCredentials?: PublicKeyCredentialDescriptor[]; challenge?: string | Buffer; timeout?: number; @@ -30,8 +30,8 @@ type Options = { * @param extensions Additional plugins the authenticator or browser should use during assertion * @param rpID Valid domain name (after `https://`) */ -export default function generateAssertionOptions( - options: Options = {}, +export function generateAssertionOptions( + options: GenerateAssertionOptions = {}, ): PublicKeyCredentialRequestOptionsJSON { const { allowCredentials, diff --git a/packages/server/src/assertion/verifyAssertionResponse.test.ts b/packages/server/src/assertion/verifyAssertionResponse.test.ts index 705f3cb..a5b6e39 100644 --- a/packages/server/src/assertion/verifyAssertionResponse.test.ts +++ b/packages/server/src/assertion/verifyAssertionResponse.test.ts @@ -1,5 +1,5 @@ import base64url from 'base64url'; -import verifyAssertionResponse from './verifyAssertionResponse'; +import { verifyAssertionResponse} from './verifyAssertionResponse'; import * as decodeClientDataJSON from '../helpers/decodeClientDataJSON'; import * as parseAuthenticatorData from '../helpers/parseAuthenticatorData'; diff --git a/packages/server/src/assertion/verifyAssertionResponse.ts b/packages/server/src/assertion/verifyAssertionResponse.ts index 2c85e6e..098d3c4 100644 --- a/packages/server/src/assertion/verifyAssertionResponse.ts +++ b/packages/server/src/assertion/verifyAssertionResponse.ts @@ -12,7 +12,7 @@ import verifySignature from '../helpers/verifySignature'; import parseAuthenticatorData from '../helpers/parseAuthenticatorData'; import isBase64URLString from '../helpers/isBase64URLString'; -type Options = { +export type VerifyAssertionOptions = { credential: AssertionCredentialJSON; expectedChallenge: string; expectedOrigin: string | string[]; @@ -36,7 +36,7 @@ type Options = { * `generateAssertionOptions()`. Activates FIDO-specific user presence and verification checks. * Omitting this value defaults verification to a WebAuthn-specific user presence requirement. */ -export default function verifyAssertionResponse(options: Options): VerifiedAssertion { +export function verifyAssertionResponse(options: VerifyAssertionOptions): VerifiedAssertion { const { credential, expectedChallenge, diff --git a/packages/server/src/attestation/generateAttestationOptions.test.ts b/packages/server/src/attestation/generateAttestationOptions.test.ts index eb7dcd7..6f54ba9 100644 --- a/packages/server/src/attestation/generateAttestationOptions.test.ts +++ b/packages/server/src/attestation/generateAttestationOptions.test.ts @@ -1,6 +1,6 @@ jest.mock('../helpers/generateChallenge'); -import generateAttestationOptions from './generateAttestationOptions'; +import { generateAttestationOptions } from './generateAttestationOptions'; test('should generate credential request options suitable for sending via JSON', () => { const rpName = 'SimpleWebAuthn'; diff --git a/packages/server/src/attestation/generateAttestationOptions.ts b/packages/server/src/attestation/generateAttestationOptions.ts index a523cd1..b191b89 100644 --- a/packages/server/src/attestation/generateAttestationOptions.ts +++ b/packages/server/src/attestation/generateAttestationOptions.ts @@ -11,7 +11,7 @@ import base64url from 'base64url'; import generateChallenge from '../helpers/generateChallenge'; -type Options = { +export type GenerateAttestationOptions = { rpName: string; rpID: string; userID: string; @@ -93,8 +93,8 @@ const defaultSupportedAlgorithmIDs = supportedCOSEAlgorithmIdentifiers.filter(id * @param supportedAlgorithmIDs Array of numeric COSE algorithm identifiers supported for * attestation by this RP. See https://www.iana.org/assignments/cose/cose.xhtml#algorithms */ -export default function generateAttestationOptions( - options: Options, +export function generateAttestationOptions( + options: GenerateAttestationOptions, ): PublicKeyCredentialCreationOptionsJSON { const { rpName, diff --git a/packages/server/src/attestation/verifications/tpm/verifyTPM.test.ts b/packages/server/src/attestation/verifications/tpm/verifyTPM.test.ts index 81f1fbe..7918afc 100644 --- a/packages/server/src/attestation/verifications/tpm/verifyTPM.test.ts +++ b/packages/server/src/attestation/verifications/tpm/verifyTPM.test.ts @@ -1,4 +1,4 @@ -import verifyAttestationResponse from '../../verifyAttestationResponse'; +import { verifyAttestationResponse }from '../../verifyAttestationResponse'; import base64url from 'base64url'; test('should verify TPM response', async () => { diff --git a/packages/server/src/attestation/verifications/verifyAndroidKey.test.ts b/packages/server/src/attestation/verifications/verifyAndroidKey.test.ts index a2dfc59..8483d43 100644 --- a/packages/server/src/attestation/verifications/verifyAndroidKey.test.ts +++ b/packages/server/src/attestation/verifications/verifyAndroidKey.test.ts @@ -1,4 +1,4 @@ -import verifyAttestationResponse from '../verifyAttestationResponse'; +import { verifyAttestationResponse }from '../verifyAttestationResponse'; import base64url from 'base64url'; test('should verify Android KeyStore response', async () => { diff --git a/packages/server/src/attestation/verifications/verifyApple.test.ts b/packages/server/src/attestation/verifications/verifyApple.test.ts index 79ac6c6..985ee8a 100644 --- a/packages/server/src/attestation/verifications/verifyApple.test.ts +++ b/packages/server/src/attestation/verifications/verifyApple.test.ts @@ -1,4 +1,4 @@ -import verifyAttestationResponse from '../verifyAttestationResponse'; +import { verifyAttestationResponse }from '../verifyAttestationResponse'; import base64url from 'base64url'; test('should verify Apple attestation', async () => { diff --git a/packages/server/src/attestation/verifyAttestationResponse.test.ts b/packages/server/src/attestation/verifyAttestationResponse.test.ts index 96e00db..2d1b347 100644 --- a/packages/server/src/attestation/verifyAttestationResponse.test.ts +++ b/packages/server/src/attestation/verifyAttestationResponse.test.ts @@ -1,6 +1,6 @@ import base64url from 'base64url'; -import verifyAttestationResponse from './verifyAttestationResponse'; +import { verifyAttestationResponse }from './verifyAttestationResponse'; import * as decodeAttestationObject from '../helpers/decodeAttestationObject'; import * as decodeClientDataJSON from '../helpers/decodeClientDataJSON'; diff --git a/packages/server/src/attestation/verifyAttestationResponse.ts b/packages/server/src/attestation/verifyAttestationResponse.ts index 023c8f2..e62071a 100644 --- a/packages/server/src/attestation/verifyAttestationResponse.ts +++ b/packages/server/src/attestation/verifyAttestationResponse.ts @@ -20,7 +20,7 @@ import verifyTPM from './verifications/tpm/verifyTPM'; import verifyAndroidKey from './verifications/verifyAndroidKey'; import verifyApple from './verifications/verifyApple'; -type Options = { +export type VerifyAttestationOptions = { credential: AttestationCredentialJSON; expectedChallenge: string; expectedOrigin: string | string[]; @@ -44,8 +44,8 @@ type Options = { * @param supportedAlgorithmIDs Array of numeric COSE algorithm identifiers supported for * attestation by this RP. See https://www.iana.org/assignments/cose/cose.xhtml#algorithms */ -export default async function verifyAttestationResponse( - options: Options, +export async function verifyAttestationResponse( + options: VerifyAttestationOptions, ): Promise<VerifiedAttestation> { const { credential, diff --git a/packages/server/src/index.test.ts b/packages/server/src/index.test.ts index ea02a04..4658252 100644 --- a/packages/server/src/index.test.ts +++ b/packages/server/src/index.test.ts @@ -15,3 +15,27 @@ test('should export method `generateAssertionOptions`', () => { test('should export method `verifyAssertionResponse`', () => { expect(index.verifyAssertionResponse).toBeDefined(); }); + +test('should export method `GenerateAssertionOptions`', () => { + expect(index.GenerateAssertionOptions).toBeDefined(); +}); + +test('should export method `GenerateAttestationOptions`', () => { + expect(index.GenerateAttestationOptions).toBeDefined(); +}); + +test('should export method `VerifyAttestationOptions`', () => { + expect(index.VerifyAttestationOptions).toBeDefined(); +}); + +test('should export method `VerifyAssertionOptions`', () => { + expect(index.VerifyAssertionOptions).toBeDefined(); +}); + +test('should export method `VerifiedAttestation`', () => { + expect(index.VerifiedAttestation).toBeDefined(); +}); + +test('should export method `VerifiedAssertion`', () => { + expect(index.VerifiedAssertion).toBeDefined(); +}); diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index b98edab..a1aed4e 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -2,10 +2,10 @@ * @packageDocumentation * @module @simplewebauthn/server */ -import generateAttestationOptions from './attestation/generateAttestationOptions'; -import verifyAttestationResponse from './attestation/verifyAttestationResponse'; -import generateAssertionOptions from './assertion/generateAssertionOptions'; -import verifyAssertionResponse from './assertion/verifyAssertionResponse'; +import { generateAttestationOptions, GenerateAttestationOptions } from './attestation/generateAttestationOptions'; +import { generateAssertionOptions, GenerateAssertionOptions } from './assertion/generateAssertionOptions'; +import { verifyAttestationResponse, VerifyAttestationOptions, VerifiedAttestation } from './attestation/verifyAttestationResponse'; +import { verifyAssertionResponse, VerifyAssertionOptions, VerifiedAssertion } from './assertion/verifyAssertionResponse'; import MetadataService from './metadata/metadataService'; export { @@ -13,5 +13,11 @@ export { verifyAttestationResponse, generateAssertionOptions, verifyAssertionResponse, + GenerateAssertionOptions, + GenerateAttestationOptions, + VerifyAttestationOptions, + VerifyAssertionOptions, + VerifiedAttestation, + VerifiedAssertion, MetadataService, }; |