Files
skills/docs/security-stack/security/srp/src/groups/8192/groups-8192.md
2026-05-29 08:20:56 +01:00

2.2 KiB

groups-8192

(no submodules)

Purpose

RFC 5054 Appendix A 8192-bit safe-prime group with generator g = 19. Reachable via @suaveplan/srp/groups/8192. The largest bundled group RFC 5054 specifies. Use only when verifier-database lifetime extends beyond the practical horizon of precomputed-discrete-log attacks against bundled primes; for almost every contemporary deployment the 2048-bit default is sufficient and the 8192-bit group's ~64x modPow slowdown is not justified.

Features

  • N_8192 byte-exact to RFC 5054 Appendix A "8192-bit Group".
  • g_8192 = Uint8Array([19]) — RFC 5054 mandates g = 19 for this size.
  • BIT_LENGTH literal 8192.
  • Subpath-only.

Usage: Basic Example

import { N_8192, g_8192, BIT_LENGTH } from "@suaveplan/srp/groups/8192";

console.log(N_8192.byteLength); // 1024
console.log(g_8192[0]); // 19
console.log(BIT_LENGTH); // 8192

Usage: Advanced Example

import { N_8192, g_8192 } from "@suaveplan/srp/groups/8192";
import { defaultHashBridge } from "@suaveplan/srp/hash";
import type { SrpParams } from "@suaveplan/srp/params";

const params: SrpParams = {
    N: N_8192,
    g: g_8192,
    bitLength: 8192,
    hash: defaultHashBridge("SHA256"),
    algorithm: "SHA256",
};

API Reference

Export Type Description
N_8192 Uint8Array 1024-byte 8192-bit modulus.
g_8192 Uint8Array Generator 0x13 (19).
BIT_LENGTH 8192 Literal bit length.

Implementation Notes

An 8192-bit modPow typically costs hundreds of milliseconds on contemporary hardware. Interactive login flows MUST NOT use this group on the request critical path; instead schedule the handshake off the perceptual deadline (e.g. background-thread the auth call, show a placeholder for the duration). The benchmark suite skips 8192 by default because the per-iteration cost dominates the warmup statistics.

The generator g = 19 is unique to this size in RFC 5054. Consumers building SrpParams from raw constants MUST use g_8192 rather than hard-coding 0x02 or 0x05.