diff options
Diffstat (limited to 'packages/server/src')
16 files changed, 16 insertions, 179 deletions
diff --git a/packages/server/src/assertion/generateAssertionCredentials.ts b/packages/server/src/assertion/generateAssertionCredentials.ts index 71f9e44..9c6ed65 100644 --- a/packages/server/src/assertion/generateAssertionCredentials.ts +++ b/packages/server/src/assertion/generateAssertionCredentials.ts @@ -1,6 +1,6 @@ import base64url from 'base64url'; +import { AssertionCredentials } from '@webauthntine/typescript-types'; -import { AssertionCredentials } from '@libTypes'; /** * Prepare credentials for user registration via navigator.credentials.get(...) diff --git a/packages/server/src/assertion/parseAssertionAuthData.ts b/packages/server/src/assertion/parseAssertionAuthData.ts index e6aa011..bdd636a 100644 --- a/packages/server/src/assertion/parseAssertionAuthData.ts +++ b/packages/server/src/assertion/parseAssertionAuthData.ts @@ -1,4 +1,4 @@ -import { ParsedAssertionAuthData } from "@libTypes"; +import { ParsedAssertionAuthData } from "@webauthntine/typescript-types"; /** * Make sense of the authData buffer contained in an Assertion diff --git a/packages/server/src/assertion/verifyAssertionResponse.ts b/packages/server/src/assertion/verifyAssertionResponse.ts index 49cc905..d906e76 100644 --- a/packages/server/src/assertion/verifyAssertionResponse.ts +++ b/packages/server/src/assertion/verifyAssertionResponse.ts @@ -1,11 +1,11 @@ import base64url from 'base64url'; - import { EncodedAuthenticatorAssertionResponse, U2F_USER_PRESENTED, AuthenticatorDevice, VerifiedAssertion, -} from "@libTypes"; +} from "@webauthntine/typescript-types"; + import decodeClientDataJSON from "@helpers/decodeClientDataJSON"; import parseAssertionAuthData from './parseAssertionAuthData'; diff --git a/packages/server/src/attestation/generateAttestationCredentials.ts b/packages/server/src/attestation/generateAttestationCredentials.ts index a45c21d..2089a20 100644 --- a/packages/server/src/attestation/generateAttestationCredentials.ts +++ b/packages/server/src/attestation/generateAttestationCredentials.ts @@ -1,4 +1,4 @@ -import { AttestationCredentials } from '@libTypes'; +import { AttestationCredentials } from '@webauthntine/typescript-types'; /** * Prepare credentials for user registration via navigator.credentials.create(...) diff --git a/packages/server/src/attestation/parseAttestationAuthData.ts b/packages/server/src/attestation/parseAttestationAuthData.ts index 996967d..8326c85 100644 --- a/packages/server/src/attestation/parseAttestationAuthData.ts +++ b/packages/server/src/attestation/parseAttestationAuthData.ts @@ -1,4 +1,4 @@ -import { ParsedAttestationAuthData } from "@libTypes"; +import { ParsedAttestationAuthData } from "@webauthntine/typescript-types"; /** * Make sense of the authData buffer contained in an Attestation diff --git a/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts b/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts index 874c388..e7853aa 100644 --- a/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts +++ b/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts @@ -1,12 +1,12 @@ import base64url from 'base64url'; - import { AttestationObject, VerifiedAttestation, SafetyNetJWTHeader, SafetyNetJWTPayload, SafetyNetJWTSignature, -} from "@libTypes"; +} from "@webauthntine/typescript-types"; + import toHash from "@helpers/toHash"; import verifySignature from '@helpers/verifySignature'; import convertCOSEtoPKCS from '@helpers/convertCOSEtoPKCS'; diff --git a/packages/server/src/attestation/verifications/verifyFIDOU2F.ts b/packages/server/src/attestation/verifications/verifyFIDOU2F.ts index 9464053..ad9ef63 100644 --- a/packages/server/src/attestation/verifications/verifyFIDOU2F.ts +++ b/packages/server/src/attestation/verifications/verifyFIDOU2F.ts @@ -1,6 +1,6 @@ import base64url from 'base64url'; +import { AttestationObject, VerifiedAttestation, U2F_USER_PRESENTED } from '@webauthntine/typescript-types'; -import { AttestationObject, VerifiedAttestation, U2F_USER_PRESENTED } from '@libTypes'; import toHash from '@helpers/toHash'; import convertCOSEtoPKCS from '@helpers/convertCOSEtoPKCS'; import convertASN1toPEM from '@helpers/convertASN1toPEM'; diff --git a/packages/server/src/attestation/verifications/verifyNone.ts b/packages/server/src/attestation/verifications/verifyNone.ts index 18e9417..cafb77a 100644 --- a/packages/server/src/attestation/verifications/verifyNone.ts +++ b/packages/server/src/attestation/verifications/verifyNone.ts @@ -1,6 +1,6 @@ import base64url from 'base64url'; +import { AttestationObject, VerifiedAttestation } from "@webauthntine/typescript-types"; -import { AttestationObject, VerifiedAttestation } from "@libTypes"; import convertCOSEtoPKCS from "@helpers/convertCOSEtoPKCS"; import parseAttestationAuthData from '../parseAttestationAuthData'; diff --git a/packages/server/src/attestation/verifications/verifyPacked.ts b/packages/server/src/attestation/verifications/verifyPacked.ts index b63fef0..63b3248 100644 --- a/packages/server/src/attestation/verifications/verifyPacked.ts +++ b/packages/server/src/attestation/verifications/verifyPacked.ts @@ -2,8 +2,8 @@ import base64url from 'base64url'; import cbor from 'cbor'; import elliptic from 'elliptic'; import NodeRSA, { SigningSchemeHash } from 'node-rsa'; +import { AttestationObject, VerifiedAttestation, COSEKEYS, COSEPublicKey } from "@webauthntine/typescript-types"; -import { AttestationObject, VerifiedAttestation, COSEKEYS, COSEPublicKey } from "@libTypes"; import convertCOSEtoPKCS from "@helpers/convertCOSEtoPKCS"; import toHash from "@helpers/toHash"; import convertASN1toPEM from '@helpers/convertASN1toPEM'; diff --git a/packages/server/src/attestation/verifyAttestationResponse.ts b/packages/server/src/attestation/verifyAttestationResponse.ts index 775a150..ad226eb 100644 --- a/packages/server/src/attestation/verifyAttestationResponse.ts +++ b/packages/server/src/attestation/verifyAttestationResponse.ts @@ -1,6 +1,6 @@ import decodeAttestationObject from '@helpers/decodeAttestationObject'; import decodeClientDataJSON from '@helpers/decodeClientDataJSON'; -import { ATTESTATION_FORMATS, EncodedAuthenticatorAttestationResponse, VerifiedAttestation } from '@libTypes'; +import { ATTESTATION_FORMATS, EncodedAuthenticatorAttestationResponse, VerifiedAttestation } from '@webauthntine/typescript-types'; import verifyFIDOU2F from './verifications/verifyFIDOU2F'; import verifyPacked from './verifications/verifyPacked'; diff --git a/packages/server/src/helpers/convertCOSEtoPKCS.ts b/packages/server/src/helpers/convertCOSEtoPKCS.ts index b7784d4..78676c3 100644 --- a/packages/server/src/helpers/convertCOSEtoPKCS.ts +++ b/packages/server/src/helpers/convertCOSEtoPKCS.ts @@ -1,6 +1,6 @@ import cbor from 'cbor'; +import { COSEKEYS, COSEPublicKey } from '@webauthntine/typescript-types'; -import { COSEKEYS, COSEPublicKey } from '@libTypes'; /** * Takes COSE-encoded public key and converts it to PKCS key diff --git a/packages/server/src/helpers/decodeAttestationObject.ts b/packages/server/src/helpers/decodeAttestationObject.ts index 224734e..fa39454 100644 --- a/packages/server/src/helpers/decodeAttestationObject.ts +++ b/packages/server/src/helpers/decodeAttestationObject.ts @@ -1,7 +1,7 @@ import base64url from 'base64url'; import cbor from 'cbor'; +import { AttestationObject } from '@webauthntine/typescript-types'; -import { AttestationObject } from '@libTypes'; /** * Convert an AttestationObject from base64 string to a proper object diff --git a/packages/server/src/helpers/decodeClientDataJSON.ts b/packages/server/src/helpers/decodeClientDataJSON.ts index 7aae023..1aeb9c9 100644 --- a/packages/server/src/helpers/decodeClientDataJSON.ts +++ b/packages/server/src/helpers/decodeClientDataJSON.ts @@ -1,4 +1,4 @@ -import { ClientDataJSON } from '@libTypes'; +import { ClientDataJSON } from '@webauthntine/typescript-types'; import asciiToBinary from './asciiToBinary'; diff --git a/packages/server/src/helpers/getCertificateInfo.ts b/packages/server/src/helpers/getCertificateInfo.ts index 1779bb3..4238bc2 100644 --- a/packages/server/src/helpers/getCertificateInfo.ts +++ b/packages/server/src/helpers/getCertificateInfo.ts @@ -1,6 +1,6 @@ import jsrsasign from 'jsrsasign'; +import { CertificateInfo } from '@webauthntine/typescript-types'; -import { CertificateInfo } from '@libTypes'; /** * Extract PEM certificate info diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 356ec2e..2b8c7c9 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -9,11 +9,3 @@ export { generateAttestationCredentials, verifyAssertionResponse, }; - -export { - EncodedAuthenticatorAssertionResponse, - EncodedAuthenticatorAttestationResponse, - VerifiedAttestation, - VerifiedAssertion, - AuthenticatorDevice, -} from './libTypes'; diff --git a/packages/server/src/libTypes.ts b/packages/server/src/libTypes.ts deleted file mode 100644 index 58cc90c..0000000 --- a/packages/server/src/libTypes.ts +++ /dev/null @@ -1,155 +0,0 @@ -/** - * An object that can be passed into navigator.credentials.create(...) in the browser - */ -export type AttestationCredentials = { - publicKey: PublicKeyCredentialCreationOptions, -}; - -/** - * An object that can be passed into navigator.credentials.get(...) in the browser - */ -export type AssertionCredentials = { - publicKey: PublicKeyCredentialRequestOptions, -}; - -/** - * A slightly-modified AuthenticatorAttestationResponse to simplify working with ArrayBuffers that - * are base64-encoded in the browser so that they can be sent as JSON to the server. - */ -export interface EncodedAuthenticatorAttestationResponse extends Omit< -AuthenticatorAttestationResponse, 'clientDataJSON' | 'attestationObject' -> { - base64ClientDataJSON: string, - base64AttestationObject: string; -} - -/** - * A slightly-modified AuthenticatorAttestationResponse to simplify working with ArrayBuffers that - * are base64-encoded in the browser so that they can be sent as JSON to the server. - */ -export interface EncodedAuthenticatorAssertionResponse extends Omit< -AuthenticatorAssertionResponse, 'clientDataJSON' | 'authenticatorData' | 'signature' -> { - base64AuthenticatorData: string; - base64ClientDataJSON: string; - base64Signature: string; -} - -export enum ATTESTATION_FORMATS { - FIDO_U2F = 'fido-u2f', - PACKED = 'packed', - ANDROID_SAFETYNET = 'android-safetynet', - NONE = 'none', -} - -export type AttestationObject = { - fmt: ATTESTATION_FORMATS, - attStmt: { - sig?: Buffer, - x5c?: Buffer[], - ecdaaKeyId?: Buffer, - response?: Buffer, - }, - authData: Buffer, -}; - -export type ParsedAttestationAuthData = { - rpIdHash: Buffer, - flagsBuf: Buffer, - flags: { - up: boolean, - uv: boolean, - at: boolean, - ed: boolean, - flagsInt: number, - }, - counter: number, - counterBuf: Buffer, - aaguid?: Buffer, - credentialID?: Buffer, - COSEPublicKey?: Buffer, -}; - -export type ClientDataJSON = { - type: string, - challenge: string, - origin: string, -}; - -/** - * Result of attestation verification - */ -export type VerifiedAttestation = { - verified: boolean, - authenticatorInfo?: { - fmt: ATTESTATION_FORMATS, - counter: number, - base64PublicKey: string, - base64CredentialID: string, - }, -}; - -/** - * Result of assertion verification - */ -export type VerifiedAssertion = { - verified: boolean; -}; - -export type CertificateInfo = { - subject: { [key: string]: string }, - version: number, - basicConstraintsCA: boolean, -}; - -export enum COSEKEYS { - kty = 1, - alg = 3, - crv = -1, - x = -2, - y = -3, - n = -1, - e = -2, -} - -export type COSEPublicKey = Map<COSEAlgorithmIdentifier, number | Buffer>; - -export type SafetyNetJWTHeader = { - alg: 'string', - x5c: string[], -}; - -export type SafetyNetJWTPayload = { - nonce: string, - timestampMs: number, - apkPackageName: string, - apkDigestSha256: string, - ctsProfileMatch: boolean, - apkCertificateDigestSha256: string[], - basicIntegrity: boolean, -}; - -export type SafetyNetJWTSignature = string; - -export type ParsedAssertionAuthData = { - rpIdHash: Buffer, - flagsBuf: Buffer, - flags: number, - counter: number, - counterBuf: Buffer, -}; - -/** - * U2F Presence constant - */ -export const U2F_USER_PRESENTED = 0x01; - -/** - * A WebAuthn-compatible device and the information needed to verify assertions by it - */ -export type AuthenticatorDevice = { - base64PublicKey: string, - base64CredentialID: string, - // Number of times this device is expected to have been used - counter: number, -}; |