summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-10-31tinc(8): outout -> outputcinap_lenrek
2017-10-31tinc: implement experimental mash peer to peer VPN from http://www.tinc-vpn.org/cinap_lenrek
2017-10-30aes(2): document aes_xts_encrypt() and aes_xts_decrypt() functionscinap_lenrek
2017-10-30kernel: pc/pc, fix comment linecinap_lenrek
2017-10-30swap(3): document permissions and encryption behaviour, reference to memory(8)cinap_lenrek
2017-10-30devcons: remove obsolete commentcinap_lenrek
2017-10-30kernel: track more header dependencies in port/portmkfilecinap_lenrek
2017-10-29devswap: fix mistakecinap_lenrek
2017-10-29kernel: introduce devswap #¶ to serve /dev/swap and handle swapfile encryptioncinap_lenrek
2017-10-29devfs: rewrite cryptio()cinap_lenrek
adjust to new aes_xts routines. allow optional offset in the 4th argument where the encrypted sectors start instead of hardcoding the 64K header area for cryptsetup. avoid allocating temporary buffer for cryptio() reads, we can just decrypt in place there. use sdmalloc() to allocate the temporary buffer for cryptio() writes so that devsd wont need to allocate and copy in case it didnt like our alignment. do not duplicate the error reporting code, just use io() that is what it is for. allow 2*256 bit keys in addition to 2*128 bit keys.
2017-10-29libsec: rewrite aex_xts_encrypt()/aes_xts_decrypt()cinap_lenrek
the previous implementation was not portable at all, assuming little endian in gf_mulx() and that one can cast unaligned pointers to ulong in xor128(). also the error code is likely to be ignored, so better abort() when the length is not a multiple of the AES block size. we also pass in full AESstate structures now instead of the expanded key longs, so that we do not need to hardcode the number of rounds. this allows each indiviaul keys to be bigger than 128 bit.
2017-10-29cwfs: use /dev/swap instead of #c/swap to determine memory sizecinap_lenrek
2017-10-28libc: improve alignment of QLp structure on amd64, cosmeticscinap_lenrek
the QLp structure used to occupy 24 bytes on amd64. with some rearranging the fields we can get it to 16 bytes, saving 8K in the data section for the 1024 preallocated structs in the ql arena. the rest of the changes are of cosmetic nature: - getqlp() zeros the next pointer, so there is no need to set it when queueing the entry. - always explicitely compare pointers to nil. - delete unused code from ape's qlock.c
2017-10-26libc: wunlock() part 2cinap_lenrek
the initial issue was that wunlock() would wakeup readers while holding the spinlock causing deadlock in libthread programs where rendezvous() would do a thread switch within the same process which then can acquire the RWLock again. the first fix tried to prevent holding the spinlock, waking up one reader at a time with releasing an re-acquiering the spinlock. this violates the invariant that readers can only wakup writers in runlock() when multiple readers where queued at the time of wunlock(). at the first wakeup, q->head != nil so runlock() would find a reader queued on runlock() when it expected a writer. this (hopefully last) fix unlinks *all* the reader QLp's atomically and in order while holding the spinlock and then traverses the dequeued chain of QLp structures again to call rendezvous() so the invariant described above holds.
2017-10-23upas/smtpd: don't call syslog() from the note handler, this can deadlockcinap_lenrek
when the alarm hits while the process is currently in syslog(), holding the sl lock, then calling syslog again will deadlock: /proc/1729193/text:386 plan 9 executable /sys/lib/acid/port /sys/lib/acid/386 acid: lstk() sleep()+0x7 /sys/src/libc/9syscall/sleep.s:5 lock(lk=0x394d8)+0xb7 /sys/src/libc/port/lock.c:25 i=0x3e8 syslog(logname=0x41c64,cons=0x0,fmt=0x41c6a)+0x2d /sys/src/libc/9sys/syslog.c:60 err=0x79732f27 d=0x0 ctim=0x0 buf=0x0 p=0x0 arg=0x0 n=0x0 catchalarm(msg=0xdfffc854)+0x7a /sys/src/cmd/upas/smtp/smtpd.c:71 notifier+0x30 /sys/src/libc/port/atnotify.c:15
2017-10-20libc: cleanup atexit and put exits() in its own compilation unitcinap_lenrek
this avoids having to pull in atexit() and its dependencies (lock(), unlock()) into every program. (as exits() is called by _main() from main9.s).
2017-10-20vt: block when sending input to host (fixes truncated paste)cinap_lenrek
2017-10-17libsec: make sectorNumber argument for aes_xts routines uvlongcinap_lenrek
2017-10-17libsec: add AES CFB and AES OFB stream cipherscinap_lenrek
2017-10-17aux/wpa: prevent PTK re-installation attack by replaying AP retransmitscinap_lenrek
this implements the mitigation suggested in section "6.5 Countermeasures" of "Key Reinstallation Attacks: Forcing Nonce Resuse in WPA2" [1]. [1] https://papers.mathyvanhoef.com/ccs2017.pdf
2017-10-16ape/libsec: fix the build, bring ape libsec.h in sync with plan9 versioncinap_lenrek
2017-10-06ssh: remove extern declarations for pkcs1padbuf() and asn1encodedigest() ↵cinap_lenrek
(now in libsec.h)
2017-10-06rsa: add auth/rsa2asn1, check write error in auth/rsa2x509 and auth/rsa2pub, ↵cinap_lenrek
document in rsa(8)
2017-10-06libsec: export asn1encodedigest(), asn1encodeRSApub(), asn1toRSApub(), ↵cinap_lenrek
pkcs1padbuf() and pkcs1unpadbuf()
2017-10-05libsec: allow \r\n terminated lines in decodePEM()cinap_lenrek
2017-10-04check for fs= in netauditaiju
2017-10-04hgwebfs: simplify retry loop constructioncinap_lenrek
2017-10-04ndb/cs: icmp only supports version 4 addresses, icmpv6 only version 6 addressescinap_lenrek
2017-10-04libauthsrv: preserve readcons() error message from read() errorcinap_lenrek
2017-10-04hg: disable tag caching, allows accessing hg repo from dumpcinap_lenrek
2017-09-299boot: limit read size to 4K for efi simple file system protocolcinap_lenrek
copying files from the uefi shell works, reading plan9.ini works, loading the kernel by calling Read to read in the DATA section of the kernel *FAILS*. my guess is that uefi filesystem driver or nvme driver tries to allocate a temporary buffer and hasnt got the space. limiting the read size fixes it.
2017-09-27pc64: add ether82598 driver to configurationcinap_lenrek
2017-09-27ether82598: support for T540-T1, use physical addresses for isaconf portcinap_lenrek
reading mac doesnt work yet, requires ea= option in isaconf.
2017-09-27sdnvme: identify namespace list fails on intel ssd, just assume nsid=[1]cinap_lenrek
2017-09-27kernel: don't tokenize inplace in isaconfig() to make /dev/reboot workcinap_lenrek
2017-09-27kernel: get rid of 36 bit Paerange mask in mtrr (supporting machines with ↵cinap_lenrek
more than 64GB of memory)
2017-09-23upas/fs: fix putcache(), sub-part messages should never go into the lrucinap_lenrek
we accidentally added non-top messages (attatchments) to the lru, resulting in attachments to be freed. this is wrong.
2017-09-22xhci: do bounds checking in capability walking, check if controller vanished ↵cinap_lenrek
on init (thunderbolt unplug)
2017-09-22sshfs: use mtime for qid.vers, fix wstat without name change, fix wstat ↵cinap_lenrek
memory leak
2017-09-13upas/fs: replace fixed cache table with lru linked listcinap_lenrek
the cachetab just keeps track of recent messages that have not been called cachefree() on. under some conditions, the fixed table could overflow (all messages having refs > 0). with a linked list, overflow becomes non fatal and the algorithm is simpler to implement.
2017-09-11winwatch: show windows with empty labels (thanks jpm)cinap_lenrek
2017-09-10rename pcf kernel to pc, remove pcf, pccpuf, pccpu64 kernels, update ↵cinap_lenrek
documentation there isnt much of a point in keep maintaining separate kernel configurations for terminal and cpu kernels as the role can be switched with service=cpu boot parameter. to make stuff cosistent, we will just have one "pc" kernel and one "pc64" kernel configuration now.
2017-09-10audiohda: add pci id for nvidia GM204BurnZeZ
2017-09-10audiohda: add pci id for Intel 9 SeriesBurnZeZ
2017-09-10vmx(3): document changes to devvmx interfacecinap_lenrek
2017-09-10audiohda: add pci id for ICH10 (thanks echoline)cinap_lenrek
2017-09-02devvmx: call vmxshutdown from reboot() function manuallyaiju
2017-08-29sshfs: fork ssh in its own namespace so it wont keep the mountpoint opencinap_lenrek
2017-08-29sshfs: start sendproc and recvproc in the sane notegroup as the fs process ↵cinap_lenrek
so theadexitsall() works on sshfs: ending.
2017-08-29ether82563: make the ethernet of thinkpad p50 work (thanks sam-d)cinap_lenrek