Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-07-01 | ape: an implemenation of getitimer setitimer | spew | |
2018-06-21 | ape: add strnlen | spew | |
2018-06-20 | ape: provide bogus chroot implementation | spew | |
2018-06-17 | ape: add some common fields for stat, grp and pwd | spew | |
2018-05-24 | ape: floating point improvements (thanks spew) | aiju | |
2018-01-02 | ape/libauth: remove auth_wep.$O from mkfile | cinap_lenrek | |
2017-12-31 | ape: make encXchr()/decXchr() functions available | cinap_lenrek | |
2017-11-20 | libsec: write optimized _chachablock() function for amd64 / sse2 | cinap_lenrek | |
doing 4 quarterround's in parallel using 128-bit vector registers. for second round shuffle the columns and then shuffle back. code is rather obvious. only trick here is for the first quaterround PSHUFLW/PSHUFHW is used to swap the halfwords for the <<<16 rotation. | |||
2017-11-12 | libsec: AES-NI support for amd64 | cinap_lenrek | |
Add assembler versions for aes_encrypt/aes_decrypt and the key setup using AES-NI instruction set. This makes aes_encrypt and aes_decrypt into function pointers which get initialized by the first call to setupAESstate(). Note that the expanded round key words are *NOT* stored in big endian order as with the portable implementation. For that reason the AESstate.ekey and AESstate.dkey fields have been changed to void* forcing an error when someone is accessing the roundkey words. One offender was aesXCBmac, which doesnt appear to be used and the code looks horrible so it has been deleted. The AES-NI implementation is for amd64 only as it requires the kernel to save/restore the FPU state across syscalls and pagefaults. | |||
2017-10-28 | libc: improve alignment of QLp structure on amd64, cosmetics | cinap_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-17 | libsec: add AES CFB and AES OFB stream ciphers | cinap_lenrek | |
2017-04-23 | libsec: sha256 support for thumbprint files, use it in ssh as well | cinap_lenrek | |
initThumbprints() now takes an application tag argument so x509 and ssh can coexist. the thumbprint entries can now hold both sha1 and sha256 hashes. okThumbprint() now takes a len argument for the hash length used. the new function okCertificate() hashes the certificate with both and checks for any matches. on failure, okCertificate() returns 0 and sets error string. we also check for include loops now in thumbfiles, limiting the number of includes to 8. | |||
2016-11-27 | stdio: fix sclose() buffer overrun when terminating string, realloc() error ↵ | cinap_lenrek | |
handling (thanks porlock) theres a bug is in sclose() where it doesnt check if wp is beyond the buffer. also wp was not updated after realloc(). bug was reported by porlock on 9fans: Plan 9's implementation of the standard C functions snprintf and vsnprintf have a buffer overrun bug. If the buffer length equals the output length (without the terminating null), then one too many characters is written to the buffer. For example, snprintf(buf, 4, "ABCD"); will write 5 characters to buf. | |||
2016-10-30 | ape/libsec: add secp384r1 curve parameters for tls | cinap_lenrek | |
2016-09-14 | ape: fix format clash, %z is for size_t (which is a long currently), not ↵ | cinap_lenrek | |
pointer sized | |||
2016-09-11 | ape: bring strtod() in line with plan9's libc version | cinap_lenrek | |
2016-08-28 | ape: add d_stat struct in dirent struct allowing the avoidance of stats | cinap_lenrek | |
2016-08-04 | ape/libauth: add PASSWDLEN constant to compile passtokey.c from native ↵ | cinap_lenrek | |
libauthsrv (thanks lawler) | |||
2016-07-10 | libsec: add scrypt password based key derivation function | cinap_lenrek | |
2016-05-04 | retire the dec alpha port | cinap_lenrek | |
2016-05-04 | ape: return plan9 error strings from strerror() | cinap_lenrek | |
when _syserrno() fails to map a plan9 error string to a unix error number, we copy the plan9 error string to the per process error buffer "plan9err" and set errno = EPLAN9. when strerror() is called with EPLAN9, it returns a pointer to the plan9err buffer. | |||
2016-04-29 | ape/libsec: fix nuke target to remove /$objtype/lib/ape/libsec.a instead of ↵ | cinap_lenrek | |
/$objtype/lib/libsec.a | |||
2016-04-27 | remove ape regexp library, add utility for awk native port | ben | |
2016-04-20 | libsec: implement elliptic curve group operations in jacobian coordinate system | cinap_lenrek | |
2016-04-11 | ape: explicitely list the ape libs to build in mkfile | cinap_lenrek | |
2016-04-11 | ape: removing openssl | cinap_lenrek | |
2016-04-11 | ape: add libauth, libbio, libmp and libsec as replacements for openssl | cinap_lenrek | |
2016-04-10 | ape: move compatibility libc.h to lib9 directory and incooperate needed ↵ | cinap_lenrek | |
functions for ape/mp (wip) | |||
2016-04-10 | ape: remove broken 9errstr.c | cinap_lenrek | |
2016-04-10 | ape: add internal _NSEC() function and make gettimeofday() use it | cinap_lenrek | |
2016-01-07 | ape/stdio: %z format is VLONG on amd64 | cinap_lenrek | |
2016-01-07 | ape/fmt: %p and %z format for amd64 | cinap_lenrek | |
2015-10-04 | ape: add missing _subv() function to 386/vlop.s | cinap_lenrek | |
2015-10-04 | ape: add machine specific code for spim | cinap_lenrek | |
2015-10-04 | libc: add _uv2d()/uv2f() and _vas*d() functions to vlrt.c | cinap_lenrek | |
on 32 bit archs, implement 64 bit vasop with floatingpoint right hand side. also added is uvlong->double conversion function. | |||
2015-09-25 | ape: add badrect object into ape libdraw | mischief | |
2015-08-08 | ape: fix build for objtype=spim | cinap_lenrek | |
2015-08-04 | ape: implement altzone for tzset() | cinap_lenrek | |
2015-08-04 | ape: fix mktime() again | cinap_lenrek | |
2015-07-07 | ape: port libc smp tas() for arm | cinap_lenrek | |
2015-06-11 | fix strncmp/memcmp used with a wrong number | ftrvxmtrx | |
2015-05-17 | libc: use Runemax instead of hardcoded 0x65536 for fmtchar check (thanks qrstuv) | cinap_lenrek | |
2015-03-25 | ape: fix main9 for mips | cinap_lenrek | |
2015-03-25 | ape: fix lockinit() for mips | cinap_lenrek | |
2015-03-18 | ape: silence compiler "no return at end of function" for mips lock.c | cinap_lenrek | |
2014-12-25 | getfcr: change getfcr/setfcr to use VFP | cinap_lenrek | |
2014-12-22 | ape: add fprint %z format (thanks Ori_B) | cinap_lenrek | |
2014-05-29 | ape/stdio: set errno to EMFILE when running out of streams | cinap_lenrek | |
2014-02-17 | prof: properly save and restore RARG for amd64 | cinap_lenrek | |
amd64 passes first argument in RARG (BP) register which has the be preserved duing _profin() and _profout() calls. to handle this we introduce _saveret() and _savearg(). _saveret() returns AX, _savearg() returns RARG (BP). for archs other and amd64, _saveret() and _savearg() are the same function, doing nothing. restoing works with dummy function: uintptr _restore(uintptr, uintptr ret) { return ret; } ... ret = _saveret(); arg = _savearg(); ... return _restore(arg, ret); as we pass arg as the first argument, RARG (BP) is restored. | |||
2014-02-01 | libc and ape support for amd64 | cinap_lenrek | |