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