summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content/posts/WIP-how-bsd-authentication-works/graph.dot208
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
}