summaryrefslogtreecommitdiff
path: root/sys/src/9
AgeCommit message (Collapse)Author
2016-09-11kernel: rekey chacha state on each randomread() invocationcinap_lenrek
we can encrypt the 256 bit chacha key on each invocation making it hard to reconstruct previous outputs of the generator given the current state (backtracking resiatance).
2016-09-11devcons: remove /dev/reboot "halt" command...cinap_lenrek
the "halt" command written to /dev/reboot just causes the machine to crash... its also undocumented... removing it. -- cinap
2016-09-11kernel: better nonce partitioning for chacha random number generatorcinap_lenrek
leave the block counter to chacha_encrypt() and increment the 96 bit iv instead.
2016-09-11kernel: xoroshiro128+ generator for rand()/nrand()cinap_lenrek
the kernels custom rand() and nrand() functions where not working as specified in rand(2). now we just use libc's rand() and nrand() functions but provide a custom lrand() impelmenting the xoroshiro128+ algorithm as proposed by aiju.
2016-09-11kernel: make randomread() fault reentrantcinap_lenrek
we now access the user buffer in randomread() outside of the lock, only copying and advancing the chacha state under the lock. this means we can use randomread() within the fault handling path now without fearing deadlock. this also allows multiple readers to generate random numbers in parallel.
2016-09-11kernel: replace various custom random iv buffer filling functions with calls ↵cinap_lenrek
to prng()
2016-09-08kernel: fix type for utime/stime in pexit(), fix debug format stringscinap_lenrek
2016-09-08kernel: make sure procalarm() remaining time doesnt become negativecinap_lenrek
2016-09-08kernel: always do unsigned subtractions for m->ticks delta for updatecpu() ↵cinap_lenrek
and rebalance(), handle ticks wrap arround in hzsched()
2016-09-07kernel: use tk2ms() instead of TK2MS macro for process time conversioncinap_lenrek
this code isnt time critical and process TReal delta can become very long, so use tk2ms() which is less prone to overflow.
2016-09-07kernel: tsemacquire() use MACHP(0)->ticks for time deltacinap_lenrek
we might wake up on a different cpu after the sleep so delta from machX->ticks - machY->ticks can become negative giving spurious timeouts. to avoid this always use the same mach 0 tick counter for the delta.
2016-09-07devcap: timeout capabilities after a minute, fix memory leak, paranoiacinap_lenrek
the manpage states that capabilities time out after a minute, so we add ticks field into the Caphash struct and record the time when the capability was inserted. freeing old capabilities is handled in trimcaps(), which makes room for one extra cap and frees timed out ones. we also limit the capuse write size to less than 1024 bytes to prevent denial of service as we have to copy the user buffer. (memory exhaustion). we have to check the from user *before* attempting to remove the capability! the wrong user shouldnt be able to change any state. this fixes the memory leak of the caphash. do the hash comparsion with tsmemcmp(), avoiding timing side channels. allocate the capabilities in secret memory pool to prevent debugger access.
2016-09-06devproc: do unsigned subtraction to get MACHP(0)->ticks - up->times[TReal] deltacinap_lenrek
2016-08-27kernel: switch to fast portable chacha based seed-once random number generatorcinap_lenrek
2016-08-27devsdp: keep cipher states in secret memorycinap_lenrek
2016-08-27ip/esp: allocate cipher states in secret memorycinap_lenrek
2016-08-27devtls: allocate cipher states in secret memorycinap_lenrek
2016-08-27devssl: allocate cipher states in secret memorycinap_lenrek
2016-08-27wifi: update wifi.h headercinap_lenrek
2016-08-27wifi: allocate cipher states in secret memory, do AESstate key setup oncecinap_lenrek
2016-08-27kernel: add secalloc() and secfree() functions for secret memory allocationcinap_lenrek
The kernel needs to keep cryptographic keys and cipher states confidential. secalloc() allocates memory from the secret pool which is protected from debuggers reading the memory thru devproc. secfree() releases the memory, overriding the data with garbage.
2016-08-20vga/igfx: add pci did's for kenjis intel graphics cards.cinap_lenrek
2016-08-16devmnt: fix mistake in mntrahread()cinap_lenrek
mntrahread() had the prefetch window condition wrong so it would very agressively prefetch ignoring the prefetch window.
2016-08-14ip/il: dont attept to connect over IPv6, IL only supports IPv4 packetscinap_lenrek
2016-07-24devtls, devssl: make sure channel has ORDWR mode and is not a mount chan on ↵cinap_lenrek
fdtochan()
2016-07-24swap: make sure swap chan has ORDWR mode on fdtochan()cinap_lenrek
2016-07-19kernel: dont pprint() into 9p channelscinap_lenrek
when fd 2 (stderr) points to a mount channel, dont cause protocol confusion by dumping error strings into it.
2016-06-30acpi: _ADR and _BBN might be methods, so use amleval() to evaluate the valuecinap_lenrek
2016-06-30ether8169: fix wrong mbps setting (from qu7uux)cinap_lenrek
the first time rtl8169link is called (from rtl8169pnp), the link isn't up, so setting edev->mbps based on Phystatus register is skipped. edev->mbps is then still set at the default 100, and that ends up being what devether uses. this is why some rtl8169 cards are misprinted as 100Mbps in kmesg. later, after rtl8169link is called again from rtl8169interrupt, the link is up and edev->mbps is set to the correct value (as shown by e.g. /net/ether0/stats). so instead, set speed regardless of link status.
2016-06-26kernel: more (arm) compiler friendly mul64fract()cinap_lenrek
the arm compiler can lift long->vlong casts on multiplcation and convert 64x64->64 multiplication into a 32x32->64 one with optional 64 bit accumulate.
2016-06-05aml: define amlintmask and set it according to DSDT revision (64bit / 32bit)cinap_lenrek
2016-06-01etheriwl: add pcid 0x0082 for Intel Centrino Advanced-N 6205 variantstanley lieber
2016-05-26vgaigfx: check gtt to determine graphics memory size, add hw cursor support ↵cinap_lenrek
for g35 (thanks kenji)
2016-05-26etheriwl: add pci id for PRO/Wireless 5350 AGN (thanks Ori_B)cinap_lenrek
2016-05-16kernel: add srvtls and tlsclient to bootfs.proto for encrypting connection ↵cinap_lenrek
to the file server
2016-05-16avoid updating offset in pread; avoid diagnostic about vlong mask (charles ↵cinap_lenrek
forsyth)
2016-05-16correct check for segment overlap (rmiller)cinap_lenrek
2016-05-11devssl, devtls: fix permission checkscinap_lenrek
2016-05-08vgaigfx: fix device id for Ivy Bridge (thanks Kenji)cinap_lenrek
2016-05-05kernel: fix cb->f[0] nil dereferences due to short control requestcinap_lenrek
2016-05-05remove unmaintained omap4 (pandaboard) kernelcinap_lenrek
2016-05-05remove unmaintained bitsy (ipaq) kernelcinap_lenrek
2016-05-05pc64: add etheryuk drivercinap_lenrek
2016-05-05etheryuk: add Yukon 88R8055 id from erik quanstros driver (thanks Kanji)cinap_lenrek
2016-05-04retire the dec alpha portcinap_lenrek
2016-05-01pc: use fpsave() instead of fpenv() to capture fp exception contextcinap_lenrek
2016-04-07ether82563: initial i217 support from ↵cinap_lenrek
http://www.9legacy.org/9legacy/patch/pc-ether82563-i210.diff (thanks k0ga) This patch is only an adaptation for 9front of the patch located in http://www.9legacy.org/9legacy/patch/pc-ether82563-i210.diff. The major difference is that this patch ignores errors in checksum of eeprom, because in my system the checksum was wrong. After 3 months, I didn't have problems, and I think the patch can be used. although it has some things that need to be fixed. If the link is inactive when the system boots then it will remain inactive forever.
2016-04-01kernel: always clunk closed fids asynchronously, regardless of cachingcinap_lenrek
2016-03-31kernel: remove unused NSMAX, NSLOG, NSCACHE constants from portdat.hcinap_lenrek
2016-03-30devsegment: cleanupscinap_lenrek
- return distinct error message when attempting to create Globalseg with physseg name - copy directory name to up->genbuf so it stays valid after we unlock(&glogalseglock) - cleanup wstat() handling, allow changing uid - make sure global segment size is below SEGMAXSIZE - move isoverlap() check from globalsegattach() into segattach() - remove Proc* argument from globalsegattach(), segattach() and isoverlap() - make Physseg.attr and segattach attr parameter an int for consistency