1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//! Issuance errors for the OIDC id_token engine.
//!
//! Mirror of `access_token::IssueError` shape: 1 variant per named failure
//! mode so audit logs read the cause off the variant name without a lookup
//! table (see `project_jwt_phase2_design` Decision 2). Variants are
//! disjoint from the access-token enum because the failure modes don't
//! overlap (id_token has no `KeyParse` because key construction lives in
//! `crate::SigningKey` shared between profiles; the access-token enum
//! retains it for legacy reasons).
//!
//! ── Why a separate enum from `access_token::IssueError` ─────────────────
//!
//! Same reasoning as `id_token::AuthError` vs `access_token::AuthError`:
//! collapsing both into one enum forces every variant to carry "applies
//! to which profile?" metadata, when the carrying enum's *type* already
//! tells the reader which profile rejected. Profile-disjoint enums let
//! each surface stay narrow (only id-token-specific failure modes
//! enumerated here) while reusing the shared engine primitives
//! (`SigningKey`, `KeySet`, `Algorithm`).
/// id_token-specific issuance failure modes (Phase 10.10).