Commit graph

182 commits

Author SHA1 Message Date
spew
0885ed1e80 alv(2): new avl implementation 2016-12-22 16:47:41 -06:00
cinap_lenrek
efe5c58c01 authsrv(2): update Nvrsafe structure to include aesmachkey 2016-09-08 10:40:19 +02:00
aiju
cf2f2a8841 mp: fix mpnot and add mpasr 2016-08-28 10:49:41 +02:00
cinap_lenrek
b59aa67922 rand(2), cons(3): clarify /dev/random behaviour 2016-08-27 21:27:52 +02:00
cinap_lenrek
8a73650874 libc: add poolisoverlap() and definitions for Pool *secrmem 2016-08-27 20:23:55 +02:00
aiju
a07a2025da document mplogic functions 2016-08-08 22:19:29 +02:00
cinap_lenrek
333468d668 thread(2): threadgrp() -> threadgetgrp(), thanks jpm 2016-08-06 15:09:18 +02:00
spew
eef8f57b22 add history for libregexp 2016-07-04 14:25:08 -05:00
cinap_lenrek
bd8b6c2f99 aml(2): document amlintmask 2016-06-05 15:15:03 +02:00
cinap_lenrek
ca5b491753 rune(2): add Runeerror reencoding considerations in BUGS section (thanks aiju) 2016-04-28 01:53:09 +02:00
aiju
e558c88821 aes(2): mention aesCBC bug 2016-04-09 20:51:24 +02:00
cinap_lenrek
9408c5faa1 qball(2): fix bad manpage reference 2016-04-07 21:51:56 +02:00
cinap_lenrek
aa6673fcfb add portable AES-GCM (Galois/Counter Mode) implementation to libsec and devtls 2016-03-23 02:45:35 +01:00
BurnZeZ
63abfb5056 manpage references/typos 2016-03-01 15:24:07 -05:00
cinap_lenrek
e3434eb5fb authsrv(2): document _asgetpakkey(), authpak_hash(), authpak_new(), authpak_finish() 2016-02-28 23:23:05 +01:00
cinap_lenrek
2ca8e31066 removing libgio, this is not golang mveery >:-( 2016-02-10 05:11:11 +01:00
Matthew Veety
a54782d69b Imported ngfs libgio. This is a library to create virtual file descriptors, similar to common lisp grey-streams or golang's io.Reader/io.Writer. Now 95% bug-free. 2016-02-09 16:24:41 -05:00
cinap_lenrek
a291bbdedd libsec: ecdsa client support for tlshand, cleanups 2016-02-01 21:34:49 +01:00
cinap_lenrek
7cfe4aef3c salsa(2): fix source reference 2016-01-19 13:06:22 +01:00
cinap_lenrek
876e19c652 salsa(2): some formating fixes 2016-01-19 13:02:12 +01:00
cinap_lenrek
7cf11db685 libsec: add salsa20 stream cipher 2016-01-19 12:50:33 +01:00
cinap_lenrek
36d2092a33 fix manpage references 2016-01-12 08:43:36 +01:00
cinap_lenrek
d30b160fe3 libmp: support for c-style base prefixes for strtomp(), octal support 2016-01-03 22:43:44 +01:00
cinap_lenrek
39f18c9d88 libsec: implement TLS-PSK for tlsClient()/tlsServer() 2015-12-25 17:05:05 +01:00
cinap_lenrek
a53ae2782a libjson: added printing support (thanks spew) 2015-12-22 18:12:56 +01:00
cinap_lenrek
7be7d0681f kernel: use uintptr for ibrk() return value (for base >2GB) and clarify segbrk(2) 2015-12-16 21:06:51 +01:00
cinap_lenrek
254031cf70 libsec: add chacha20 poly1305 aead, allow 64 bit iv's for chacha, add tsmemcmp()
chacha20 comes in two variants: ietf rfc7539, using 96 bit iv and 32 bit counter
and draft-agl-tls-chacha20poly1305 using 64 bit iv and a 64 bit counter. so
setupChachastate() now takes a ivlen argument which sets the mode.

add ccpoly_encrypt()/ccpoly_decrypt() routines.

to implement timing safe ccpoly_decrypt(), a constant time memcmp was needed, so
adding tsmemcmp() to libsec.
2015-11-26 15:25:10 +01:00
cinap_lenrek
38e1e5272f libmp: initial attempt at constant time code, faster reductions for special primes (for ecc)
introduce MPtimesafe flag to request time invariant computation
disables normalization so significant digits are not leaked.
2015-11-21 09:39:59 +01:00
cinap_lenrek
93d63dc1f3 mp(2): fix typo mnprand() -> mpnrand() 2015-10-28 13:39:17 +01:00
cinap_lenrek
847f3a0cf5 libsec: add chacha cipher (from charles forsyth) 2015-10-22 07:48:26 +02:00
cinap_lenrek
7effba9d98 libsec: add poly1305 2015-10-22 07:17:25 +02:00
aiju
27d2955ccf lib9p: add reqqueuefree 2015-10-12 10:41:40 +02:00
cinap_lenrek
8003c8b1e2 utf(6), rune(2): document 21-bit runes 2015-09-24 12:14:08 +02:00
cinap_lenrek
7562da90e5 libc: remove privfree(), simplify privalloc() 2015-09-06 20:43:05 +02:00
cinap_lenrek
e3a64494e7 libsec: remove flawed aes() digest and hmac_aes() implementations (thanks aiju) 2015-09-01 21:35:43 +02:00
cinap_lenrek
8f2e408448 libmp: add mpnrand() function to generate uniform random number 0 ≤ x < n 2015-08-25 20:20:25 +02:00
cinap_lenrek
63b18e7925 introduce AES key into nvram and keyfs 2015-08-21 02:43:31 +02:00
cinap_lenrek
02cfcfeab4 libauthsrv: generalize ticket service, not hardcoding ticket format and DES encryption
this is in preparation for replacing DES ticket encryption with
something better. but first need to make the code stop making
assumptions.

the wire encoding of the Ticket might be variable length
with TICKETLEN just giving an upper bound. the details will be
handled by libauthsrv _asgetticket() and _asgetresp() funciotns.

the Authenticator and Passwordreq structures are encrypted
with the random ticket key. The encryption schmeme will depend
on the Ticket format used, so we pass the Ticket* structure
instead of the DES key.

introduce Authkey structure that will hold all the required
cryptographic keys instead of passing DES key.
2015-08-19 21:06:17 +02:00
cinap_lenrek
d457a43461 libc: make atoi() not parse c-style octal and hex numbers
interpreting octal breaks parsing of decimal numbers with
leading zeros. the manpage listed this in the BUGS section,
so we'r going to fix it as this just causes confusion as
most callers of atoi() do not expect it.
2015-08-03 18:10:53 +02:00
cinap_lenrek
f42a7ade70 bio(2): Bterm() closes filedescriptor for Bfdopen() allocated buffer 2015-08-01 03:16:35 +02:00
stanley lieber
20e255110c open(2): fix typo 2015-07-01 21:46:47 -04:00
cinap_lenrek
e6220b39c9 exec(2): return register (R0) contains address of Tos structure. 2015-06-19 09:02:59 +02:00
ftrvxmtrx
e56e61fed1 addpt(2): put badrect in .SH NAME so that it gets into the searchindex 2015-06-09 12:32:38 +02:00
ftrvxmtrx
86acce7c4d esetcursor(2), alarm(2): fix prototypes 2015-06-09 12:29:57 +02:00
ftrvxmtrx
72a168b5fb event(2): fix estartfn prototype 2015-06-09 11:54:22 +02:00
ftrvxmtrx
a314302e64 libdraw: sync allocimage/allocwindow prototypes with man pages 2015-06-09 10:33:30 +02:00
ftrvxmtrx
2c505c160e addpt(2): document badrect function 2015-06-09 23:34:36 +02:00
ftrvxmtrx
e77002cdab freeimage(2), readcolmap(2), writecolmap(2): fix prototypes 2015-06-09 23:23:00 +02:00
cinap_lenrek
477f3ce3ea exec(2): exec argument size only limited by user stack size 2015-06-08 21:08:57 +02:00
ftrvxmtrx
e89e54d1a3 exec(2): fix prototypes 2015-06-08 12:59:51 +02:00
cinap_lenrek
de3c058efb cputime(2): fix prototype for cycles() (thanks qrstuv) 2015-05-28 18:11:45 +02:00
cinap_lenrek
ff2e8f308d thread(2): fix prototype for threadint() and threadkillgrp() (thanks qwx!) 2015-05-25 13:03:45 +02:00
cinap_lenrek
40360a992d libsec: implement tlsClient support for RFC6066 server name identification (SNI)
tlsClient() now can optionally send the server_name in the ClientHello
message by setting the TLSconn.serverName. This is required for some
https sites.
2015-05-21 02:26:57 +02:00
cinap_lenrek
12bb7bcfff libsec: remove aesCTRencrypt()/aesCTRdecrypt() (thanks mischief and qrstuv)
as mischief and qrstuv point out, these functions are not very usefull
and are even implemented wrong (incrementCTR()), so deleting the code.
2015-04-29 02:58:10 +02:00
stanley lieber
3b5c56561c pushtls(2): tls.h -> libsec.h (thanks, pr) 2015-03-18 18:33:34 -04:00
stanley lieber
17ae0ea757 mp(2) man page: mpinvert, not mpinverse (thanks, pr) 2015-03-16 23:34:37 -04:00
cinap_lenrek
9babf6a347 encode(2): clarify lim argument to enc*(), add SOURCE reference for encodefmt() 2015-03-11 17:48:24 +01:00
cinap_lenrek
dfed1eb851 pushtls(2): fix signature to TLSconn.trace() 2015-03-10 00:41:46 +01:00
cinap_lenrek
07c7fa6716 libthread: get rid of chaninit() (thanks qrstuv)
chaninit() does not initialize Chan.qentry and Chan.nentry
and there is no way to get rid of such a channel. nobody is
using it, so removing the function to avoid confusion.
2015-03-04 10:20:31 +01:00
cinap_lenrek
692e32caf4 thread(2): remove another instance of /mnt/temp 2015-02-28 13:27:00 +01:00
cinap_lenrek
45d1d31847 libthread: use devdup instead of mounting pipe to /mnt/temp for close-on-exec in procexec()
the namespace might be shared by other processes. instead, we
create a anonymous pipe with pipe() and use devdup to open one
end close-on-exec. this is shorter and avoids the race condition.

do not touch Execargs after writing the error message as the
process might be gone after the write. this was to manually
close the fd which isnt neccesary as the kernel will do it
for us on the following exit.
2015-02-28 12:50:17 +01:00
cinap_lenrek
91d3af942a auth(2): fix prototype for auth_getinfo() in manual page 2015-01-25 07:40:52 +01:00
mischief
1b4b4e89aa bin(2): fix tab formatting 2014-12-31 23:45:05 -08:00
mischief
ba47daaab3 memlayer(2): fix memdraw signature 2014-12-28 12:14:24 -08:00
cinap_lenrek
035aacf6f5 bio: add Bfdopen() from plan9port 2014-12-14 20:21:42 +01:00
cinap_lenrek
972577b61e strcat(2): fix strchr() and strrchr() function prototypes (thanks BurnZeZ) 2014-12-07 14:26:41 +01:00
cinap_lenrek
20cc2799af mouse(2): fix atomouse (thanks qrstuv) 2014-11-06 04:59:07 +01:00
cinap_lenrek
168b9f3de4 libdraw: add missing borderop() (thanks aiju) 2014-07-21 18:10:58 +02:00
cinap_lenrek
013054ef6f merge 2014-07-03 01:11:05 +02:00
stanley lieber
5814e66560 9pqueue(2): english 2014-07-02 19:01:20 -04:00
cinap_lenrek
2dc3180f98 9p(2): add reference to 9pqueue(2) 2014-07-03 00:57:40 +02:00
cinap_lenrek
fa56753ed8 add 9pqueue(2), medium to low quality manpage. 2014-07-03 00:47:10 +02:00
cinap_lenrek
4ad63a4c56 nusb: fix spelling, sorry 2014-06-28 19:55:14 +02:00
cinap_lenrek
4275c49e72 nusb: implement aijus stable uniqueue device names
instead of naming devices by ther dynamically assigned device address,
we hash device uniqueue fields from the device descriptor and produce
a 5 digit hex string that will identify the device across machines.

when there is a collision (less than 1% chance with 100 devices),
usbd will append the device address to the name to make it uniqueue
for this machine.

the hname is passed to drivers in the devid argument, which now has
the form addr:hname, where the colon and hname can be omited (for backwards
compatibility).

when the new behaviour isnt desired, nousbhname= environment variable
can be defined giving the old behaviour.
2014-06-28 18:09:43 +02:00
cinap_lenrek
7abf926bcf libc: dont cache /dev/bintime filedescriptor for nsec() 2014-05-20 05:01:26 +02:00
ftrvxmtrx
4468438c70 merge 2014-04-26 13:22:48 +02:00
ftrvxmtrx
b4fa1e617b man pages: fix duplicate words 2014-04-26 13:22:15 +02:00
glenda
5e201a7d2e draw(2): fix missing arg of bezspline on page 5 2014-04-26 03:38:07 +01:00
ftrvxmtrx
244bb0038d man pages: the the wich 2014-04-26 01:47:36 +02:00
BurnZeZ
d41b6136f5 getfields(2): add missing SOURCE file 2014-04-01 13:12:23 -04:00
glenda
8c65872285 scribble(2): quashed false claims of quick-reference decadance. 2014-02-25 20:05:34 +00:00
mischief
26af562313 mp(2): spelling 2014-02-24 01:10:40 -08:00
mischief
1d1fafc892 control(2): spelling 2014-02-24 13:02:54 -08:00
cinap_lenrek
ad38f0eb1c pool(2): fix ulong -> uintptr 2014-02-12 18:53:03 +01:00
cinap_lenrek
cb0393181a malloc(2): update alloctag types 2014-01-20 00:54:36 +01:00
aap
7e1b43a53a Corrected some man pages. 2014-01-17 19:15:24 +01:00
stanley lieber
459f018d0d add HISTORY to various man pages 2013-12-27 16:22:05 -05:00
cinap_lenrek
cad92eedd9 json(2): fix out of order SOURCE heading 2013-12-25 20:09:00 +01:00
stanley lieber
9b03130bb9 json(2): fix spelling error 2013-12-19 14:59:50 -05:00
cinap_lenrek
803bc88a5f add medium to low quality json(2) manual page 2013-12-19 19:56:04 +01:00
cinap_lenrek
71dbddef16 draw: fix drawing of replicated source image on memlayer with a clip rectangle
when a replicated source image with a clipr with clipr.min > Pt(0, 0),
drawclip() would properly translate the src->clipr on the dstr
but then clamp the source rectangle back on src->r.

while traversing down multiple layers, this would cause the translation to
be applied multiple times to the dst rectangle giving the wrong image result.

this change adds a new drawclipnorepl() function that avoids the clamping
of source and mask rectangles to src->r and mask->r. this is then used in
libmemlayer.

the final memimagedraw() call will call drawclip() which will do the final
claming.

a testcase is provided:

#include <u.h>
#include <libc.h>
#include <draw.h>

Image *blue;
Image *red;

void
main(int, char *argv[])
{
	Image *i;

	if(initdraw(nil, nil, argv[0]) < 0)
		sysfatal("initdraw: %r");
	i = allocimage(display, screen->r, screen->chan, 1, DWhite);

	red = allocimage(display, Rect(0,0,1,1), screen->chan, 1, DRed);
	blue = allocimage(display, Rect(0,0,1,1), screen->chan, 1, DPaleblue);
	replclipr(red, 1, Rect(10, 10, 110, 110));
	replclipr(blue, 1, Rect(11, 11, 111, 111));

	/* draw on non-layer, works correctly */
	draw(i, i->r, red, nil, ZP);
	draw(i, i->r, blue, nil, ZP);
	draw(screen, screen->r, i, nil, i->r.min);
	flushimage(display, 1);

	/* draw on (screen) layer is too far to the right */
	draw(screen, screen->r, red, nil, ZP);
	draw(screen, screen->r, blue, nil, ZP);
	flushimage(display, 1);

	for(;;){
		sleep(1000);
	}
}
2013-12-09 03:35:01 +01:00
cinap_lenrek
d56a6fadc5 libmemdraw: change memimageinit() to return integer error (for kernel), minor cleanups 2013-11-12 21:42:05 +01:00
cinap_lenrek
235e06c988 arch(3), aml(2): document /dev/acpitbls file 2013-11-10 21:26:11 +01:00
cinap_lenrek
eb060fbfb1 aml(2): tabelize by function, move hardware linkage on separate page 2013-11-10 18:58:00 +01:00
stanley lieber
f637986cae aml(2): english 2013-11-03 20:01:03 -05:00
cinap_lenrek
f73bf5f90d aml(2): fix amldelay() decscription. it takes microseconds, not milliseconds. 2013-11-04 00:09:28 +01:00
cinap_lenrek
65829e635c add aml(2) manual page 2013-11-03 22:13:03 +01:00
cinap_lenrek
e30f50283c 9p(2): correct usage for srvrelease()/srvacquire()
the process is *NOT* allowed to exit after a srvrelease() as
it still holds a reference (srv->rref) preventing the srv
from beging freed/ended (listensrv) before srvacquire().
2013-10-17 08:26:05 +02:00
cinap_lenrek
65653a1840 pushssl(2), pushtls(2): clarify filedescriptor closing 2013-09-20 17:44:14 +02:00
ppatience0
2502ba5acc auth(2): auth_getkey only takes a single argument: char *params 2013-06-01 14:00:19 -04:00