react-native-nitro-totp
Version:
React Native module for TOTP (Time-based One-Time Password) and HOTP (HMAC-based One-Time Password) authentication.
27 lines (23 loc) • 808 B
text/typescript
import { SupportedAlgorithm, SecretSize } from './types';
export const NitroTotpConstants = {
DEFAULT_DIGITS: 6,
DEFAULT_PERIOD: 30,
DEFAULT_SECRET_SIZE: SecretSize.STANDARD,
DEFAULT_WINDOW: 1,
DEFAULT_COUNTER: 0,
DEFAULT_ALGORITHM: SupportedAlgorithm.SHA1,
} as const;
export const SecretSizeBytes: Record<SecretSize, number> = {
[SecretSize.COMPACT]: 16, // 26 Base32 chars
[SecretSize.STANDARD]: 20, // 32 Base32 chars
[SecretSize.EXTENDED]: 32, // 52 Base32 chars
} as const;
export const defaultOptions = {
issuer: '',
label: 'OTP Auth',
size: SecretSizeBytes[SecretSize.STANDARD],
digits: NitroTotpConstants.DEFAULT_DIGITS,
period: NitroTotpConstants.DEFAULT_PERIOD,
counter: NitroTotpConstants.DEFAULT_COUNTER,
window: NitroTotpConstants.DEFAULT_WINDOW,
} as const;