summaryrefslogtreecommitdiffstats
path: root/content/posts/WIP-how-bsd-authentication-works/graph.dot
diff options
context:
space:
mode:
Diffstat (limited to 'content/posts/WIP-how-bsd-authentication-works/graph.dot')
-rw-r--r--content/posts/WIP-how-bsd-authentication-works/graph.dot67
1 files changed, 67 insertions, 0 deletions
diff --git a/content/posts/WIP-how-bsd-authentication-works/graph.dot b/content/posts/WIP-how-bsd-authentication-works/graph.dot
new file mode 100644
index 0000000..6414b11
--- /dev/null
+++ b/content/posts/WIP-how-bsd-authentication-works/graph.dot
@@ -0,0 +1,67 @@
+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;
+}