AgeCommit message (Collapse)AuthorLines
Claim and test Lua 5.5 for every extensionBryce Kwon-3/+3
luaossl from release 20260910 and luaposix load under Lua 5.5, and cgit renders the same pages under it as under LuaJIT. Running the suites there already caught a write to a for loop's control variable, which 5.5 makes read-only.
Say that a protected repository stays on the indexBryce Kwon-0/+4
Name the auth cookie __Host- where it can beBryce Kwon-2/+10
Without the prefix any host under the same domain could set a cgitauth cookie of its own, signing a visitor in as someone else or out.
End a session when its account's hash changesBryce Kwon-29/+44
A session stayed good for its whole week after the password changed or the account went away, which is when ending it matters most.
Load auth libraries only when a request needs oneBryce Kwon-6/+10
Required at the top, a missing luaossl or luaposix failed every request to the site, public pages included, and each public page paid to load both.
Say which hash kinds each system's crypt checksBryce Kwon-2/+13
The one recipe given, SHA-512 from Debian's mkpasswd, cannot log anyone in on OpenBSD, whose crypt checks only bcrypt, or on macOS, and libxcrypt, which most Linux distributions use, recommends yescrypt instead.
Spend a missing account's login on a real hashBryce Kwon-9/+14
The fixed SHA-512 stand-in matched only the documented setup, so a site hashing with yescrypt, other rounds or bcrypt answered for missing and real names in different times, and on OpenBSD it failed at once.
Turn down passwords past 256 bytes uncheckedBryce Kwon-1/+5
SHA-crypt hashes the password in most of its rounds, so the 4 KB that cgit's POST limit lets through cost about fifteen ordinary logins per anonymous attempt.
Read the auth cookie in linear timeBryce Kwon-5/+21
Splitting the header with patterns that backtrack over spaces cost a quarter of a second per request at the 8 KB line most web servers allow, and a second at 16 KB, without any login. auth-file's trim had the same shape and now reads the cookie as well.
Unify the docs, samples and extensionsBryce Kwon-1/+1
Clean up the whole treeBryce Kwon-22/+11
Give the login inputs explicit field typesBryce Kwon-1/+1
Trim the comments and dead code across the treeBryce Kwon-41/+25
Let password managers fill the login formBryce Kwon-4/+4
Restyle the filter extension headers and markupBryce Kwon-138/+158
Move the cookie-signing secret out of the cachev2.3.0Bryce Kwon-1/+1
Trim the lua headers and fix the Scintillua notesBryce Kwon-30/+3
Fix cookie name escaping and stored hash trimmingBryce Kwon-1/+10
Reorganize the tree into vendor/ and custom/Bryce Kwon-0/+528