summaryrefslogtreecommitdiffstats
path: root/content/posts/WIP-how-bsd-authentication-works/graph.dot
diff options
context:
space:
mode:
authorDante Catalfamo2020-07-07 22:28:28 -0400
committerDante Catalfamo2020-07-07 22:28:28 -0400
commit118b0019658890837ab8e19608ce0779cb6f4d9a (patch)
treef1146c980182a3fa19dcc37553a2932583e193f3 /content/posts/WIP-how-bsd-authentication-works/graph.dot
parenta3bf350943b99c475a281b00a8354654fe4b26f9 (diff)
downloadblog-118b0019658890837ab8e19608ce0779cb6f4d9a.tar.gz
blog-118b0019658890837ab8e19608ce0779cb6f4d9a.tar.bz2
blog-118b0019658890837ab8e19608ce0779cb6f4d9a.zip
Move WIP posts to WIP folders
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;
+}