Commit e60372b
committed
docs(cryptojwt): enhance API documentation with security considerations
Add comprehensive security warnings, usage examples, and best practices to all
public functions in the cryptojwt package. Documentation now follows RFC 8725
JWT Best Current Practices.
HMAC Functions (hsjwt.go):
- Add security warnings about minimum secret lengths (32/48/64 bytes)
- Document allowWeakSecret parameter risks (testing only)
- Add parameter documentation for validation options
- Include usage examples for encoder/decoder initialization
- Document Encode/Decode methods with security considerations
- Warn about plaintext JWT payloads (signed but not encrypted)
RSA Functions (rsjwt.go):
- Add file permission warnings for private keys (0600 recommended)
- Document key management best practices (no version control)
- Explain public vs private key security considerations
- Add cached version documentation with memory security warnings
- Include performance optimization examples for high-throughput scenarios
- Document trusted source requirement for public keys
ECDSA Functions (esjwt.go):
- Document curve specifications (P-256, P-384, P-521)
- Add security equivalence notes (256-bit ECDSA ≈ 3072-bit RSA)
- Include key protection guidelines
- Add cached version documentation with performance notes
- Provide usage examples for encoder/decoder patterns
Key Security Topics Covered:
- Algorithm confusion attack prevention
- Secret/key strength requirements per RFC 7518
- Claims validation behavior (exp, nbf, iat not validated by default)
- JWT payload transparency (base64-encoded, not encrypted)
- Private key file protection and management
- Memory security for cached keys
- Public key trusted source validation
All documentation follows Go documentation conventions and renders correctly
in godoc. Tests pass (27/27), linter passes with 0 issues.
Fixes #471 parent 4944f65 commit e60372b
3 files changed
Lines changed: 165 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
45 | 60 | | |
46 | 61 | | |
47 | 62 | | |
| |||
108 | 123 | | |
109 | 124 | | |
110 | 125 | | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
111 | 141 | | |
112 | 142 | | |
113 | 143 | | |
| |||
122 | 152 | | |
123 | 153 | | |
124 | 154 | | |
125 | | - | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
126 | 174 | | |
127 | 175 | | |
128 | 176 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
34 | 49 | | |
35 | 50 | | |
36 | 51 | | |
37 | 52 | | |
38 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
39 | 61 | | |
40 | 62 | | |
41 | 63 | | |
42 | 64 | | |
43 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
44 | 74 | | |
45 | 75 | | |
46 | 76 | | |
| |||
67 | 97 | | |
68 | 98 | | |
69 | 99 | | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
70 | 104 | | |
71 | 105 | | |
72 | 106 | | |
| |||
103 | 137 | | |
104 | 138 | | |
105 | 139 | | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
106 | 144 | | |
107 | 145 | | |
108 | 146 | | |
| |||
138 | 176 | | |
139 | 177 | | |
140 | 178 | | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
141 | 190 | | |
142 | 191 | | |
143 | 192 | | |
| |||
147 | 196 | | |
148 | 197 | | |
149 | 198 | | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
150 | 212 | | |
151 | 213 | | |
152 | 214 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
42 | 57 | | |
43 | 58 | | |
44 | 59 | | |
| |||
61 | 76 | | |
62 | 77 | | |
63 | 78 | | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
64 | 95 | | |
65 | 96 | | |
66 | 97 | | |
| |||
75 | 106 | | |
76 | 107 | | |
77 | 108 | | |
78 | | - | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
79 | 132 | | |
80 | 133 | | |
81 | 134 | | |
| |||
0 commit comments