From 1a7fc12e8655d65620b19ad6e09592aef95f68c8 Mon Sep 17 00:00:00 2001
From: Dante Catalfamo
Date: Sun, 4 Jul 2021 03:13:03 -0400
Subject: bsd-auth: Add color to lines in graph, add copyright and license
---
.../WIP-how-bsd-authentication-works/gen_dot.rb | 11 +-
.../WIP-how-bsd-authentication-works/graph.dot | 152 +++++-----
.../WIP-how-bsd-authentication-works/graph.svg | 310 ++++++++++-----------
3 files changed, 241 insertions(+), 232 deletions(-)
diff --git a/content/posts/WIP-how-bsd-authentication-works/gen_dot.rb b/content/posts/WIP-how-bsd-authentication-works/gen_dot.rb
index 7244789..bad2a90 100755
--- a/content/posts/WIP-how-bsd-authentication-works/gen_dot.rb
+++ b/content/posts/WIP-how-bsd-authentication-works/gen_dot.rb
@@ -1,6 +1,11 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
+# Copyright (c) 2021 Dante Catalfamo
+# SPDX-License-Identifier: MIT
+
+require 'digest'
+
SOURCE_DIR = File.join Dir.home, 'src', 'github.com', 'openbsd', 'src', 'lib', 'libc', 'gen'
FILENAMES = %w[authenticate.c auth_subr.c login_cap.c].freeze
@@ -36,8 +41,12 @@ class FunctionDigraph
@to = to
end
+ def color(func)
+ Digest::MD5.hexdigest(func)[..5]
+ end
+
def emit
- puts "#{from} -> #{to}" if to =~ /auth|login|^_/
+ puts "#{from} -> #{to} [color = \"##{color(from)}\"]" if to =~ /auth|login|^_/
end
end
diff --git a/content/posts/WIP-how-bsd-authentication-works/graph.dot b/content/posts/WIP-how-bsd-authentication-works/graph.dot
index 59d7ecd..27730fb 100644
--- a/content/posts/WIP-how-bsd-authentication-works/graph.dot
+++ b/content/posts/WIP-how-bsd-authentication-works/graph.dot
@@ -66,80 +66,80 @@ 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
+auth_checknologin -> _auth_checknologin [color = "#f0bfd8"]
+_auth_checknologin -> login_getcapbool [color = "#f51748"]
+_auth_checknologin -> login_getcapstr [color = "#f51748"]
+_auth_checknologin -> auth_cat [color = "#f51748"]
+auth_approval -> auth_getitem [color = "#8f94eb"]
+auth_approval -> auth_getpwd [color = "#8f94eb"]
+auth_approval -> _auth_validuser [color = "#8f94eb"]
+auth_approval -> login_getclass [color = "#8f94eb"]
+auth_approval -> login_close [color = "#8f94eb"]
+auth_approval -> login_getcapstr [color = "#8f94eb"]
+auth_approval -> auth_open [color = "#8f94eb"]
+auth_approval -> auth_setstate [color = "#8f94eb"]
+auth_approval -> auth_setitem [color = "#8f94eb"]
+auth_approval -> auth_check_expire [color = "#8f94eb"]
+auth_approval -> login_getcapbool [color = "#8f94eb"]
+auth_approval -> auth_call [color = "#8f94eb"]
+auth_approval -> auth_close [color = "#8f94eb"]
+auth_approval -> auth_getstate [color = "#8f94eb"]
+auth_usercheck -> _auth_validuser [color = "#96fc6d"]
+auth_usercheck -> login_getclass [color = "#96fc6d"]
+auth_usercheck -> login_getstyle [color = "#96fc6d"]
+auth_usercheck -> login_close [color = "#96fc6d"]
+auth_usercheck -> auth_open [color = "#96fc6d"]
+auth_usercheck -> auth_setitem [color = "#96fc6d"]
+auth_usercheck -> auth_setdata [color = "#96fc6d"]
+auth_usercheck -> auth_verify [color = "#96fc6d"]
+auth_userokay -> auth_usercheck [color = "#3eb09b"]
+auth_userokay -> auth_close [color = "#3eb09b"]
+auth_userchallenge -> _auth_validuser [color = "#0db8d4"]
+auth_userchallenge -> login_getclass [color = "#0db8d4"]
+auth_userchallenge -> login_getstyle [color = "#0db8d4"]
+auth_userchallenge -> auth_open [color = "#0db8d4"]
+auth_userchallenge -> login_close [color = "#0db8d4"]
+auth_userchallenge -> auth_setitem [color = "#0db8d4"]
+auth_userchallenge -> auth_close [color = "#0db8d4"]
+auth_userchallenge -> auth_challenge [color = "#0db8d4"]
+auth_userresponse -> auth_setstate [color = "#cc7ac2"]
+auth_userresponse -> auth_getitem [color = "#cc7ac2"]
+auth_userresponse -> _auth_validuser [color = "#cc7ac2"]
+auth_userresponse -> auth_close [color = "#cc7ac2"]
+auth_userresponse -> auth_setdata [color = "#cc7ac2"]
+auth_userresponse -> auth_getstate [color = "#cc7ac2"]
+auth_userresponse -> auth_check_expire [color = "#cc7ac2"]
+auth_verify -> auth_open [color = "#83192f"]
+auth_verify -> auth_setstate [color = "#83192f"]
+auth_verify -> auth_setitem [color = "#83192f"]
+auth_verify -> auth_getitem [color = "#83192f"]
+auth_verify -> _auth_validuser [color = "#83192f"]
+auth_verify -> auth_set_va_list [color = "#83192f"]
+auth_verify -> auth_call [color = "#83192f"]
+auth_clean -> auth_clrenv [color = "#759227"]
+auth_clean -> auth_setitem [color = "#759227"]
+auth_close -> auth_setenv [color = "#4a5505"]
+auth_challenge -> _auth_validuser [color = "#5e3ac3"]
+auth_challenge -> auth_getvalue [color = "#5e3ac3"]
+auth_setitem -> auth_setitem [color = "#e67693"]
+auth_setitem -> _auth_validuser [color = "#e67693"]
+auth_check_expire -> auth_setpwd [color = "#739550"]
+auth_check_change -> auth_setpwd [color = "#902d9d"]
+auth_call -> _auth_next_arg [color = "#a9e6c9"]
+auth_call -> _auth_spool [color = "#a9e6c9"]
+auth_call -> _add_rmlist [color = "#a9e6c9"]
+auth_call -> auth_clrenv [color = "#a9e6c9"]
+_auth_spool -> _recv_fd [color = "#977e1c"]
+login_getstyle -> login_getcapstr [color = "#51a344"]
+gsetrl -> login_getcaptime [color = "#35d53a"]
+gsetrl -> login_getcapsize [color = "#35d53a"]
+gsetrl -> login_getcapnum [color = "#35d53a"]
+setclasscontext -> login_getclass [color = "#5b8e44"]
+setclasscontext -> login_close [color = "#5b8e44"]
+setusercontext -> login_getclass [color = "#7eb75f"]
+setusercontext -> login_close [color = "#7eb75f"]
+setusercontext -> login_getcapnum [color = "#7eb75f"]
+setusercontext -> setlogin [color = "#7eb75f"]
+setuserpath -> login_setenv [color = "#35ed7d"]
+setuserenv -> login_setenv [color = "#a1aa6a"]
}
diff --git a/content/posts/WIP-how-bsd-authentication-works/graph.svg b/content/posts/WIP-how-bsd-authentication-works/graph.svg
index 40ddc41..3063fdf 100644
--- a/content/posts/WIP-how-bsd-authentication-works/graph.svg
+++ b/content/posts/WIP-how-bsd-authentication-works/graph.svg
@@ -45,8 +45,8 @@
auth_checknologin->_auth_checknologin
-
-
+
+
@@ -57,8 +57,8 @@
_auth_checknologin->auth_cat
-
-
+
+
@@ -69,8 +69,8 @@
_auth_checknologin->login_getcapstr
-
-
+
+
@@ -81,8 +81,8 @@
_auth_checknologin->login_getcapbool
-
-
+
+
@@ -99,8 +99,8 @@
auth_approval->_auth_validuser
-
-
+
+
@@ -111,8 +111,8 @@
auth_approval->auth_open
-
-
+
+
@@ -123,8 +123,8 @@
auth_approval->auth_close
-
-
+
+
@@ -135,8 +135,8 @@
auth_approval->auth_getitem
-
-
+
+
@@ -147,8 +147,8 @@
auth_approval->auth_setitem
-
-
+
+
@@ -159,8 +159,8 @@
auth_approval->auth_check_expire
-
-
+
+
@@ -171,8 +171,8 @@
auth_approval->auth_call
-
-
+
+
@@ -183,8 +183,8 @@
auth_approval->auth_setstate
-
-
+
+
@@ -195,8 +195,8 @@
auth_approval->auth_getstate
-
-
+
+
@@ -207,8 +207,8 @@
auth_approval->auth_getpwd
-
-
+
+
@@ -219,20 +219,20 @@
auth_approval->login_getclass
-
-
+
+
auth_approval->login_getcapstr
-
-
+
+
auth_approval->login_getcapbool
-
-
+
+
@@ -243,8 +243,8 @@
auth_approval->login_close
-
-
+
+
@@ -255,8 +255,8 @@
auth_usercheck->_auth_validuser
-
-
+
+
@@ -267,20 +267,20 @@
auth_usercheck->auth_verify
-
-
+
+
auth_usercheck->auth_open
-
-
+
+
auth_usercheck->auth_setitem
-
-
+
+
@@ -291,14 +291,14 @@
auth_usercheck->auth_setdata
-
-
+
+
auth_usercheck->login_getclass
-
-
+
+
@@ -309,32 +309,32 @@
auth_usercheck->login_getstyle
-
-
+
+
auth_usercheck->login_close
-
-
+
+
auth_userokay
-
+
auth_userokay
auth_userokay->auth_usercheck
-
-
+
+
auth_userokay->auth_close
-
-
+
+
@@ -345,20 +345,20 @@
auth_userchallenge->_auth_validuser
-
-
+
+
auth_userchallenge->auth_open
-
-
+
+
auth_userchallenge->auth_close
-
-
+
+
@@ -369,116 +369,116 @@
auth_userchallenge->auth_challenge
-
-
+
+
auth_userchallenge->auth_setitem
-
-
+
+
auth_userchallenge->login_getclass
-
-
+
+
auth_userchallenge->login_getstyle
-
-
+
+
auth_userchallenge->login_close
-
-
+
+
auth_userresponse
-
+
auth_userresponse
auth_userresponse->_auth_validuser
-
-
+
+
auth_userresponse->auth_close
-
-
+
+
auth_userresponse->auth_getitem
-
-
+
+
auth_userresponse->auth_setdata
-
-
+
+
auth_userresponse->auth_check_expire
-
-
+
+
auth_userresponse->auth_setstate
-
-
+
+
auth_userresponse->auth_getstate
-
-
+
+
auth_verify->_auth_validuser
-
-
+
+
auth_verify->auth_open
-
-
+
+
auth_verify->auth_getitem
-
-
+
+
auth_verify->auth_setitem
-
-
+
+
auth_verify->auth_call
-
-
+
+
auth_verify->auth_setstate
-
-
+
+
@@ -489,8 +489,8 @@
auth_verify->auth_set_va_list
-
-
+
+
@@ -507,14 +507,14 @@
auth_clean->auth_clrenv
-
-
+
+
auth_clean->auth_setitem
-
-
+
+
@@ -525,14 +525,14 @@
auth_close->auth_setenv
-
-
+
+
auth_challenge->_auth_validuser
-
-
+
+
@@ -543,20 +543,20 @@
auth_challenge->auth_getvalue
-
-
+
+
auth_setitem->_auth_validuser
-
-
+
+
auth_setitem->auth_setitem
-
-
+
+
@@ -585,8 +585,8 @@
auth_check_expire->auth_setpwd
-
-
+
+
@@ -597,14 +597,14 @@
auth_check_change->auth_setpwd
-
-
+
+
auth_call->auth_clrenv
-
-
+
+
@@ -615,20 +615,20 @@
auth_call->_auth_spool
-
-
+
+
_add_rmlist
-
+
_add_rmlist
auth_call->_add_rmlist
-
-
+
+
@@ -639,8 +639,8 @@
auth_call->_auth_next_arg
-
-
+
+
@@ -651,14 +651,14 @@
_auth_spool->_recv_fd
-
-
+
+
login_getstyle->login_getcapstr
-
-
+
+
@@ -687,20 +687,20 @@
gsetrl->login_getcaptime
-
-
+
+
gsetrl->login_getcapnum
-
-
+
+
gsetrl->login_getcapsize
-
-
+
+
@@ -711,14 +711,14 @@
setclasscontext->login_getclass
-
-
+
+
setclasscontext->login_close
-
-
+
+
@@ -729,20 +729,20 @@
setusercontext->login_getclass
-
-
+
+
setusercontext->login_getcapnum
-
-
+
+
setusercontext->login_close
-
-
+
+
@@ -753,8 +753,8 @@
setusercontext->setlogin
-
-
+
+
@@ -771,8 +771,8 @@
setuserpath->login_setenv
-
-
+
+
@@ -783,8 +783,8 @@
setuserenv->login_setenv
-
-
+
+
--
cgit v1.2.3