diff options
-rw-r--r-- | content/posts/WIP-how-bsd-authentication-works/graph.dot | 208 |
1 files changed, 143 insertions, 65 deletions
diff --git a/content/posts/WIP-how-bsd-authentication-works/graph.dot b/content/posts/WIP-how-bsd-authentication-works/graph.dot index 6414b11..59d7ecd 100644 --- a/content/posts/WIP-how-bsd-authentication-works/graph.dot +++ b/content/posts/WIP-how-bsd-authentication-works/graph.dot @@ -1,67 +1,145 @@ digraph G { - subgraph cluster_authenticate { - label = "authenticate.c" - auth_userokay; - auth_usercheck; - auth_verify; - } - - subgraph cluster_auth_subr { - label = "auth_subr.c" - auth_open; - auth_call; - auth_close; - // auth_setitem; - // auth_setdata; - // auth_setopts; - auth_set[label="auth_set*"]; - auth_setstate; - // _auth_spool; - } - - subgraph cluster_login_cap { - label = "libc/login_cap.c" - login_getclass - login_getstyle - } - - subgraph cluster_getpwent { - label = "libc/getpwent.c" - getpwnam_r; - } - - subgraph cluster_exec { - login[label="login_*"]; - execve; - } - - - start -> auth_userokay; - auth_userokay -> auth_usercheck; - auth_usercheck -> getpwnam_r; - auth_usercheck -> login_getclass; - auth_usercheck -> login_getstyle; - // if password given - auth_usercheck -> auth_open; - // auth_usercheck -> auth_setitem; - // auth_usercheck -> auth_setdata; - auth_usercheck -> auth_set; - // fi - auth_usercheck -> auth_verify; - - auth_verify -> auth_setstate; - auth_verify -> auth_call; - - auth_call -> execve[label="fork()"]; - // auth_call -> _auth_spool; - - execve -> login; - login -> auth_call[label="back channel"]; - // login -> _auth_spool[label="back channel"]; - - - // auth_usercheck -> { auth_setitem auth_setdata auth_setopts } - - // auth_call -> auth_userokay; - auth_userokay -> auth_close; +rankdir=LR +splines=ortho +graph [pad="0.5", nodesep="0.5", ranksep="1.5"] +subgraph cluster_authenticate { +label = "authenticate.c" +auth_mkvalue +auth_checknologin +_auth_checknologin +auth_cat +_auth_validuser +auth_approval +auth_usercheck +auth_userokay +auth_userchallenge +auth_userresponse +auth_verify +} +subgraph cluster_auth_subr { +label = "auth_subr.c" +auth_open +auth_clean +auth_close +auth_challenge +auth_setenv +auth_clrenv +auth_getitem +auth_setitem +auth_setoption +auth_clroptions +auth_clroption +auth_setdata +auth_setpwd +auth_getvalue +auth_check_expire +auth_check_change +auth_call +_recv_fd +_auth_spool +_add_rmlist +_auth_next_arg +auth_setstate +auth_set_va_list +auth_getstate +auth_getpwd +} +subgraph cluster_login_cap { +label = "login_cap.c" +login_getclass +login_getstyle +login_getcapstr +login_getcaptime +login_getcapnum +login_getcapsize +login_getcapbool +login_close +gsetrl +setclasscontext +setusercontext +setuserpath +setuserenv +login_setenv +strtosize +strtolimit +multiply +secure_path +expandstr +} +auth_checknologin -> _auth_checknologin +_auth_checknologin -> login_getcapbool +_auth_checknologin -> login_getcapstr +_auth_checknologin -> auth_cat +auth_approval -> auth_getitem +auth_approval -> auth_getpwd +auth_approval -> _auth_validuser +auth_approval -> login_getclass +auth_approval -> login_close +auth_approval -> login_getcapstr +auth_approval -> auth_open +auth_approval -> auth_setstate +auth_approval -> auth_setitem +auth_approval -> auth_check_expire +auth_approval -> login_getcapbool +auth_approval -> auth_call +auth_approval -> auth_close +auth_approval -> auth_getstate +auth_usercheck -> _auth_validuser +auth_usercheck -> login_getclass +auth_usercheck -> login_getstyle +auth_usercheck -> login_close +auth_usercheck -> auth_open +auth_usercheck -> auth_setitem +auth_usercheck -> auth_setdata +auth_usercheck -> auth_verify +auth_userokay -> auth_usercheck +auth_userokay -> auth_close +auth_userchallenge -> _auth_validuser +auth_userchallenge -> login_getclass +auth_userchallenge -> login_getstyle +auth_userchallenge -> auth_open +auth_userchallenge -> login_close +auth_userchallenge -> auth_setitem +auth_userchallenge -> auth_close +auth_userchallenge -> auth_challenge +auth_userresponse -> auth_setstate +auth_userresponse -> auth_getitem +auth_userresponse -> _auth_validuser +auth_userresponse -> auth_close +auth_userresponse -> auth_setdata +auth_userresponse -> auth_getstate +auth_userresponse -> auth_check_expire +auth_verify -> auth_open +auth_verify -> auth_setstate +auth_verify -> auth_setitem +auth_verify -> auth_getitem +auth_verify -> _auth_validuser +auth_verify -> auth_set_va_list +auth_verify -> auth_call +auth_clean -> auth_clrenv +auth_clean -> auth_setitem +auth_close -> auth_setenv +auth_challenge -> _auth_validuser +auth_challenge -> auth_getvalue +auth_setitem -> auth_setitem +auth_setitem -> _auth_validuser +auth_check_expire -> auth_setpwd +auth_check_change -> auth_setpwd +auth_call -> _auth_next_arg +auth_call -> _auth_spool +auth_call -> _add_rmlist +auth_call -> auth_clrenv +_auth_spool -> _recv_fd +login_getstyle -> login_getcapstr +gsetrl -> login_getcaptime +gsetrl -> login_getcapsize +gsetrl -> login_getcapnum +setclasscontext -> login_getclass +setclasscontext -> login_close +setusercontext -> login_getclass +setusercontext -> login_close +setusercontext -> login_getcapnum +setusercontext -> setlogin +setuserpath -> login_setenv +setuserenv -> login_setenv } |