Initial commit
This commit is contained in:
commit
fedfa92efc
|
@ -0,0 +1,7 @@
|
|||
_site
|
||||
.sass-cache
|
||||
.jekyll-cache
|
||||
.jekyll-metadata
|
||||
vendor
|
||||
|
||||
.DS_Store
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
permalink: /404.html
|
||||
layout: home
|
||||
---
|
||||
|
||||
<div class="container">
|
||||
<h1>404</h1>
|
||||
|
||||
<p><strong>You're in the wrong place.</strong> Go <a href="/">/home</a>.</p>
|
||||
<p>:wq</p>
|
||||
</div>
|
|
@ -0,0 +1,30 @@
|
|||
source "https://rubygems.org"
|
||||
# Hello! This is where you manage which Jekyll version is used to run.
|
||||
# When you want to use a different version, change it below, save the
|
||||
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
|
||||
#
|
||||
# bundle exec jekyll serve
|
||||
#
|
||||
# This will help ensure the proper Jekyll version is running.
|
||||
# Happy Jekylling!
|
||||
gem "jekyll", "~> 4.1.1"
|
||||
# This is the default theme for new Jekyll sites. You may change this to anything you like.
|
||||
gem "minima", "~> 2.5"
|
||||
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
|
||||
# uncomment the line below. To upgrade, run `bundle update github-pages`.
|
||||
# gem "github-pages", group: :jekyll_plugins
|
||||
# If you have any plugins, put them here!
|
||||
# group :jekyll_plugins do
|
||||
# gem "jekyll-feed", "~> 0.12"
|
||||
# end
|
||||
|
||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
# and associated library.
|
||||
# platforms :mingw, :x64_mingw, :mswin, :jruby do
|
||||
# gem "tzinfo", "~> 1.2"
|
||||
# gem "tzinfo-data"
|
||||
# end
|
||||
|
||||
# Performance-booster for watching directories on Windows
|
||||
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
|
||||
gem "jekyll-theme-console"
|
|
@ -0,0 +1,84 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.1)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.1.10)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.15.5)
|
||||
forwardable-extended (2.6.0)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.12.0)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.1.1)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (~> 2.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (~> 2.1)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (~> 0.4.0)
|
||||
pathutil (~> 0.9)
|
||||
rouge (~> 3.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (~> 1.8)
|
||||
jekyll-feed (0.17.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-sass-converter (2.2.0)
|
||||
sassc (> 2.0.1, < 3.0)
|
||||
jekyll-seo-tag (2.8.0)
|
||||
jekyll (>= 3.8, < 5.0)
|
||||
jekyll-theme-console (0.4.0)
|
||||
jekyll (>= 3.5)
|
||||
jekyll-seo-tag
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (2.4.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.4)
|
||||
listen (3.8.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
minima (2.5.1)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-feed (~> 0.9)
|
||||
jekyll-seo-tag (~> 2.1)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (5.0.1)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.5)
|
||||
rouge (3.30.0)
|
||||
safe_yaml (1.0.5)
|
||||
sassc (2.4.0)
|
||||
ffi (~> 1.9)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
unicode-display_width (1.8.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll (~> 4.1.1)
|
||||
jekyll-feed (~> 0.12)
|
||||
jekyll-theme-console
|
||||
minima (~> 2.5)
|
||||
tzinfo (~> 1.2)
|
||||
tzinfo-data
|
||||
wdm (~> 0.1.1)
|
||||
|
||||
BUNDLED WITH
|
||||
2.1.4
|
|
@ -0,0 +1,13 @@
|
|||
# [distrust.co](https://distrust.co)
|
||||
|
||||
Web page source.
|
||||
|
||||
## Instructions
|
||||
|
||||
1. Install [Ruby](https://www.ruby-lang.org/en/documentation/installation/)
|
||||
2. Install [Jekyll](https://jekyllrb.com/docs/installation/)
|
||||
3.
|
||||
```shell
|
||||
$ jekyll build
|
||||
```
|
||||
4. Extract contents from `_site` directory.
|
|
@ -0,0 +1,60 @@
|
|||
# Welcome to Jekyll!
|
||||
#
|
||||
# This config file is meant for settings that affect your whole blog, values
|
||||
# which you are expected to set up once and rarely edit after that. If you find
|
||||
# yourself editing this file very often, consider using Jekyll's data files
|
||||
# feature for the data you need to update frequently.
|
||||
#
|
||||
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
||||
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
|
||||
#
|
||||
# If you need help with YAML syntax, here are some quick references for you:
|
||||
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
|
||||
# https://learnxinyminutes.com/docs/yaml/
|
||||
#
|
||||
# Site settings
|
||||
# These are used to personalize your new site. If you look in the HTML files,
|
||||
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
|
||||
# You can create any custom variable you would like, and they will be accessible
|
||||
# in the templates via {{ site.myvariable }}.
|
||||
|
||||
title: Distrust
|
||||
email: lance@distrust.co
|
||||
description: >- # this means to ignore newlines until "baseurl:"
|
||||
Trust
|
||||
Nothing
|
||||
baseurl: "" # the subpath of your site, e.g. /blog
|
||||
url: "https://distrust.co" # the base hostname & protocol for your site, e.g. http://example.com
|
||||
|
||||
header_pages:
|
||||
- index.md
|
||||
- about.md
|
||||
- contact.md
|
||||
|
||||
style: dark # dark (default), light or hacker
|
||||
listen_for_clients_preferred_style: false # false (default) or true
|
||||
|
||||
footer: '2023 Distrust, LLC'
|
||||
|
||||
# Build settings
|
||||
theme: jekyll-theme-console
|
||||
|
||||
# Exclude from processing.
|
||||
# The following items will not be processed, by default.
|
||||
# Any item listed under the `exclude:` key here will be automatically added to
|
||||
# the internal "default list".
|
||||
#
|
||||
# Excluded items can be processed by explicitly listing the directories or
|
||||
# their entries' file path in the `include:` list.
|
||||
#
|
||||
# exclude:
|
||||
# - .sass-cache/
|
||||
# - .jekyll-cache/
|
||||
# - gemfiles/
|
||||
# - Gemfile
|
||||
# - Gemfile.lock
|
||||
# - node_modules/
|
||||
# - vendor/bundle/
|
||||
# - vendor/cache/
|
||||
# - vendor/gems/
|
||||
# - vendor/ruby/
|
|
@ -0,0 +1,3 @@
|
|||
<footer>
|
||||
<span><img src="assets/base/distrust-white.svg" width="12px"/></span> {{ site.footer }}
|
||||
</footer>
|
|
@ -0,0 +1,14 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<title>{{ page.title }}</title>
|
||||
|
||||
{% if page.robots %}
|
||||
<meta name="robots" content="{{page.robots}}" />
|
||||
{% endif %}
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="{{ "/assets/main.css" | relative_url }}">
|
||||
<link rel="stylesheet" type="text/css" href="{{ "/assets/main-dark.css" | relative_url }}">
|
||||
|
||||
</head>
|
|
@ -0,0 +1,14 @@
|
|||
{%- assign page_paths = site.header_pages | default: default_paths -%}
|
||||
<header>
|
||||
<div class="menu">
|
||||
<span class="menu-logo"><img src="assets/base/distrust-text-white.svg" height="20px"/></span>
|
||||
<ul>
|
||||
{%- for path in page_paths -%}
|
||||
{%- assign my_page = site.pages | where: "path", path | first -%}
|
||||
{%- if my_page.title -%}
|
||||
<li><a href="{{ my_page.url | relative_url }}">{{ my_page.title | escape }}</a></li>
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
</ul>
|
||||
</div>
|
||||
</header>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{{ page.lang | default: site.lang | default: "en" }}">
|
||||
|
||||
{%- include head.html -%}
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
|
||||
{%- include header.html -%}
|
||||
|
||||
<main>
|
||||
{{ content }}
|
||||
</main>
|
||||
|
||||
{%- include footer.html -%}
|
||||
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
{{ content }}
|
||||
{% assign contentwonl = content | strip_newlines %} {% unless contentwonl == "" %} <br /> {% endunless %}
|
||||
{%- assign date_format = "%Y-%m-%d" -%}
|
|
@ -0,0 +1,32 @@
|
|||
/**
|
||||
* Dark theme variables
|
||||
*/
|
||||
|
||||
:root {
|
||||
--base-color: #FFFFFF;
|
||||
--border: solid 2px rgba(219, 219, 219, 0.9);
|
||||
--selection-background: rgba(219, 219, 219, 0.99);
|
||||
--selection-text: #000;
|
||||
--background-color: #424242;
|
||||
--text-color: var(--base-color);
|
||||
--placeholder-color: var(--base-color);
|
||||
--link-color: var(--base-color);
|
||||
--code-color-1: #aaaaaa;
|
||||
--code-color-2: #ffffcc;
|
||||
--code-color-3: #F00000;
|
||||
--code-color-4: #F0A0A0;
|
||||
--code-color-5: #b38aff;
|
||||
--code-color-6: #5ba711;
|
||||
--code-color-7: #e4e477;
|
||||
--code-color-8: #000080;
|
||||
--code-color-9: #05ca05;
|
||||
--code-color-10: #888888;
|
||||
--code-color-11: #555555;
|
||||
--code-color-12: #800080;
|
||||
--code-color-13: #00d4d4;
|
||||
--code-color-14: #00c1c1;
|
||||
--code-color-15: #ed9d13;
|
||||
--code-color-16: #1e90ff;
|
||||
--code-color-17: #800000;
|
||||
--code-color-18: #bbbbbb;
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
/**
|
||||
* Base variables
|
||||
*/
|
||||
|
||||
:root {
|
||||
--base-color: #000;
|
||||
--border: dashed 1px rgba(0, 0, 0, 1);
|
||||
--selection-background: rgba(0, 0, 0, 0.99);
|
||||
--selection-text: #FFF;
|
||||
--background-color: #FFF;
|
||||
--text-color: var(--base-color);
|
||||
--placeholder-color: var(--base-color);
|
||||
--link-color: var(--base-color);
|
||||
--code-color-1: #aaaaaa;
|
||||
--code-color-2: #ffffcc;
|
||||
--code-color-3: #F00000;
|
||||
--code-color-4: #F0A0A0;
|
||||
--code-color-5: #0000aa;
|
||||
--code-color-6: #4c8317;
|
||||
--code-color-7: #aa0000;
|
||||
--code-color-8: #000080;
|
||||
--code-color-9: #00aa00;
|
||||
--code-color-10: #888888;
|
||||
--code-color-11: #555555;
|
||||
--code-color-12: #800080;
|
||||
--code-color-13: #00aaaa;
|
||||
--code-color-14: #009999;
|
||||
--code-color-15: #aa5500;
|
||||
--code-color-16: #1e90ff;
|
||||
--code-color-17: #800000;
|
||||
--code-color-18: #bbbbbb;
|
||||
}
|
|
@ -0,0 +1,151 @@
|
|||
@charset "utf-8";
|
||||
// @import url('https://fonts.googleapis.com/css?family=Rubik:400,700');
|
||||
// @import url('Rubik-VariableFont_wght.ttf');
|
||||
|
||||
@font-face {
|
||||
font-family: 'Rubik';
|
||||
src: url('fonts/Rubik-VariableFont_wght.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/**
|
||||
* Style variables
|
||||
*/
|
||||
$base-font-family: 'Rubik', monospace !default;
|
||||
$base-font-size: 12.5px !default;
|
||||
$mobile-font-size: 12px !default;
|
||||
$base-line-height: 1.5 !default;
|
||||
$container-width: 90% !default;
|
||||
$container-max-width: 800px !default;
|
||||
|
||||
/**
|
||||
* Global
|
||||
*/
|
||||
body { background-color: var(--background-color); margin: 0 auto; padding: 0; font-family: $base-font-family; font-size: $base-font-size; color: var(--text-color); text-align: left; line-height: $base-line-height !important; }
|
||||
h1 { font-size: 32px; }
|
||||
h2 { font-size: 28px; }
|
||||
h3 { font-size: 24px; }
|
||||
h4 { font-size: 20px; }
|
||||
h5 { font-size: 18px; }
|
||||
h6 { font-size: 16px; }
|
||||
h1, h2, h3, h4, h5, h6 { margin: 0px; margin-top: 12px; margin-bottom: 12px; font-weight: bold; color: var(--text-color); }
|
||||
p, ul, ol { margin: 0px; color: var(--text-color); }
|
||||
a { text-decoration: underline; color: var(--link-color); }
|
||||
a:hover { color: var(--background-color); background-color: var(--base-color); }
|
||||
@media only screen and (max-device-width: 500px) { * { font-size: $mobile-font-size; } }
|
||||
|
||||
/**
|
||||
* Layout
|
||||
*/
|
||||
.container { width: $container-width; max-width: $container-max-width; margin-right: auto; margin-left: auto; }
|
||||
p { word-wrap: break-word; word-break: break-word; white-space: pre-wrap; margin-bottom: 15px; }
|
||||
footer { color: var(--text-color); border-top: var(--border); margin-top: 0; padding-top: 10px; text-align: right; }
|
||||
header { margin-top: 20px; margin-bottom: 10px; }
|
||||
header p { text-align: left; margin: 0; }
|
||||
footer { margin-bottom: 20px; }
|
||||
hr { margin-top: 20px; }
|
||||
|
||||
/**
|
||||
* Menu Logo
|
||||
*/
|
||||
.menu-logo { position: absolute; }
|
||||
|
||||
/**
|
||||
* Highlight/Markup
|
||||
*/
|
||||
::selection { background: var(--selection-background); color: var(--selection-text); }
|
||||
::-moz-selection { background: var(--selection-background); color: var(--selection-text); }
|
||||
|
||||
/**
|
||||
* Lists
|
||||
*/
|
||||
:not(.menu) > ul { list-style: none; }
|
||||
:not(.menu) > ul { list-style-type: none; }
|
||||
:not(.menu) > ul > li:before { content: "-"; margin-right: 9px; }
|
||||
|
||||
/**
|
||||
* Header/Navigation
|
||||
*/
|
||||
.menu { border-bottom: var(--border); margin-bottom: 20px; }
|
||||
.menu ul { margin-top: 12px; margin-bottom: 12px; padding-left: 0px; list-style-type: none; text-align: right; }
|
||||
.menu ul li { display: inline; margin-left: 10px; }
|
||||
.menu ul li a { text-decoration: none; color: var(--text-color); }
|
||||
.menu ul li a:hover { text-decoration: none; color: var(--background-color); background-color: var(--base-color); }
|
||||
|
||||
/**
|
||||
* Form
|
||||
*/
|
||||
input, select, textarea { padding: 0; margin: 0; -webkit-appearance: none; -webkit-border-radius: 0; border: none; }
|
||||
input[type=text], select, textarea { width: 100%; resize: none; background-color: var(--background-color); color: var(--text-color); caret-color: var(--text-color); font-size: $base-font-size; font-family: $base-font-family; line-height: $base-line-height; }
|
||||
input, select, textarea, textarea::-webkit-input-placeholder { text-indent: 0px; }
|
||||
::placeholder { color: var(--placeholder-color); opacity: 1; }
|
||||
:-ms-input-placeholder { color: var(--placeholder-color); }
|
||||
::-ms-input-placeholder { color: var(--placeholder-color); }
|
||||
input[type=submit] { font-size: $base-font-size; font-family: $base-font-family; line-height: $base-line-height; cursor: pointer; color: var(--link-color); background-color: var(--background-color); }
|
||||
input[type=submit]:hover { color: var(--background-color); background-color: var(--base-color); }
|
||||
*:focus { outline: none; }
|
||||
textarea { vertical-align: top; }
|
||||
|
||||
/**
|
||||
* Code and syntax highlighting
|
||||
*/
|
||||
.lineno { color: var(--code-color-1); margin-right: 15px; }
|
||||
figure.highlight { margin: 5px 0; }
|
||||
pre { background-color: var(--background-color); border: none; padding: 0; margin: 0; overflow:auto; font-size: $base-font-size; color: var(--text-color); line-height: 1.7 !important; font-family: $base-font-family !important; }
|
||||
.highlight .hll { background-color: var(--code-color-2); }
|
||||
.highlight .c { color: var(--code-color-1); font-style: italic } /* Comment */
|
||||
.highlight .err { color: var(--code-color-3); background-color: var(--code-color-4); } /* Error */
|
||||
.highlight .k { color: var(--code-color-5); } /* Keyword */
|
||||
.highlight .cm { color: var(--code-color-1); font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: var(--code-color-6); } /* Comment.Preproc */
|
||||
.highlight .c1 { color: var(--code-color-1); font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: var(--code-color-5); font-style: italic } /* Comment.Special */
|
||||
.highlight .gd { color: var(--code-color-7); } /* Generic.Deleted */
|
||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: var(--code-color-7); } /* Generic.Error */
|
||||
.highlight .gh { color: var(--code-color-8); font-weight: bold } /* Generic.Heading */
|
||||
.highlight .gi { color: var(--code-color-9); } /* Generic.Inserted */
|
||||
.highlight .go { color: var(--code-color-10); } /* Generic.Output */
|
||||
.highlight .gp { color: var(--code-color-11); } /* Generic.Prompt */
|
||||
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: var(--code-color-12); font-weight: bold } /* Generic.Subheading */
|
||||
.highlight .gt { color: var(--code-color-7); } /* Generic.Traceback */
|
||||
.highlight .kc { color: var(--code-color-5); } /* Keyword.Constant */
|
||||
.highlight .kd { color: var(--code-color-5); } /* Keyword.Declaration */
|
||||
.highlight .kn { color: var(--code-color-5); } /* Keyword.Namespace */
|
||||
.highlight .kp { color: var(--code-color-5); } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: var(--code-color-5); } /* Keyword.Reserved */
|
||||
.highlight .kt { color: var(--code-color-13); } /* Keyword.Type */
|
||||
.highlight .m { color: var(--code-color-14); } /* Literal.Number */
|
||||
.highlight .s { color: var(--code-color-15); } /* Literal.String */
|
||||
.highlight .na { color: var(--code-color-16); } /* Name.Attribute */
|
||||
.highlight .nb { color: var(--code-color-13); } /* Name.Builtin */
|
||||
.highlight .nc { color: var(--code-color-9); text-decoration: underline } /* Name.Class */
|
||||
.highlight .no { color: var(--code-color-7); } /* Name.Constant */
|
||||
.highlight .nd { color: var(--code-color-10); } /* Name.Decorator */
|
||||
.highlight .ni { color: var(--code-color-17); font-weight: bold } /* Name.Entity */
|
||||
.highlight .nf { color: var(--code-color-9); } /* Name.Function */
|
||||
.highlight .nn { color: var(--code-color-13); text-decoration: underline } /* Name.Namespace */
|
||||
.highlight .nt { color: var(--code-color-16); font-weight: bold } /* Name.Tag */
|
||||
.highlight .nv { color: var(--code-color-7); } /* Name.Variable */
|
||||
.highlight .ow { color: var(--code-color-5); } /* Operator.Word */
|
||||
.highlight .w { color: var(--code-color-18); } /* Text.Whitespace */
|
||||
.highlight .mf { color: var(--code-color-14); } /* Literal.Number.Float */
|
||||
.highlight .mh { color: var(--code-color-14); } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: var(--code-color-14); } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: var(--code-color-14); } /* Literal.Number.Oct */
|
||||
.highlight .sb { color: var(--code-color-15); } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: var(--code-color-15); } /* Literal.String.Char */
|
||||
.highlight .sd { color: var(--code-color-15); } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: var(--code-color-15); } /* Literal.String.Double */
|
||||
.highlight .se { color: var(--code-color-15); } /* Literal.String.Escape */
|
||||
.highlight .sh { color: var(--code-color-15); } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: var(--code-color-15); } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: var(--code-color-15); } /* Literal.String.Other */
|
||||
.highlight .sr { color: var(--code-color-14); } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: var(--code-color-15); } /* Literal.String.Single */
|
||||
.highlight .ss { color: var(--code-color-5); } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: var(--code-color-13); } /* Name.Builtin.Pseudo */
|
||||
.highlight .vc { color: var(--code-color-7); } /* Name.Variable.Class */
|
||||
.highlight .vg { color: var(--code-color-7); } /* Name.Variable.Global */
|
||||
.highlight .vi { color: var(--code-color-7); } /* Name.Variable.Instance */
|
||||
.highlight .il { color: var(--code-color-14); } /* Literal.Number.Integer.Long */
|
|
@ -0,0 +1,80 @@
|
|||
---
|
||||
title: /about
|
||||
layout: home
|
||||
permalink: /about
|
||||
---
|
||||
|
||||
## Approach
|
||||
|
||||
Like most security firms, we often start relationships with full stack audits. We also have enough experience in this industry to admit another firm will find bugs we missed, and vice versa. Our true goal in audits is to understand your threat model and find a path to fundamentally remove entire classes of relevant attack surface.
|
||||
|
||||
We tend to start with a consultation where try to help you understand your true attack surface by answering tough questions:
|
||||
|
||||
- Can your Google Authenticator codes be phished?
|
||||
- Can your SMS 2FA solution be SIM Swapped?
|
||||
- Can someone tamper with your Git repos or CI/CD systems?
|
||||
- Would it be profitable for someone to buy a $50,000 0day to compromise employee devices?
|
||||
- What happens when the FedEx guy leaves a tampered USB C cable on a conference table?
|
||||
- Who reviews the code of your third party dependencies?
|
||||
- What happens when your IT administrator is compromised? Or a production engineer?
|
||||
- Can a change in local political landscape fundamentally halt your business?
|
||||
- Can someone buy a server next to yours and steal your secrets via a side channel attack?
|
||||
- How do know the offline laptop with the keys to the kingdom has not been tampered with?
|
||||
- Do you have a plan for <i>when</i> your production systems are compromised?
|
||||
|
||||
---
|
||||
|
||||
## Values
|
||||
|
||||
### Distrust
|
||||
|
||||
- We will never ask you to give us access to production systems or have any power over your org.
|
||||
- Anyone with access to significant value is at personal risk. We teach distrust to protect people.
|
||||
- We will always provide a way for you to build and verify any binaries we provide yourself
|
||||
- We are happy to provide you any background research we legally can so you can make your own conclusions
|
||||
|
||||
### Transparency
|
||||
|
||||
- We regularly open source our research and common advice to get input and corrections from others in our industry
|
||||
- Prices are always public. We will sometimes adjust based on demand, but everyone is offered the same rates
|
||||
- With the exception of fully Open Source projects, which we offer a universal 15% discount on.
|
||||
|
||||
### Security
|
||||
|
||||
- Our internal threat model assumes well funded entities are interested in our clients and our work
|
||||
- All client work is performed in dedicated local virtual machines under an offline host OS
|
||||
- All authentication, and password management is done via dedicated pin+touch controlled personal HSMs.
|
||||
- We exclusively use End-To-End cross-verified encrypted chat internally.
|
||||
|
||||
### Privacy
|
||||
|
||||
- Your data and IP are always stored with AES256 encryption unlockable only with our personal HSMs.
|
||||
- Your data and IP are never exposed in plain text except on your systems or systems we physically control
|
||||
- Everyone on our team has hardware-backed PGP keys to encrypt documents and emails if you prefer
|
||||
|
||||
### Freedom
|
||||
|
||||
- We feel every customer has a path to not need us anymore, and we will encourage it.
|
||||
- We exclusively use Open Source internally and help make improvements when needed
|
||||
- All general purpose security tools and research we create is Open Source by default.
|
||||
- We ensure you have a free path to replicate any of our findings yourself
|
||||
- We will always favor solutions that minimize lock-in with third parties.
|
||||
|
||||
---
|
||||
|
||||
## Services
|
||||
|
||||
- Reproducible builds
|
||||
- Build all software multiple times in systems controlled by different teams
|
||||
- Ensure hashes match, proving code and binaries were not tampered with
|
||||
- We optionally can host and maintain secondary build infrastructure.
|
||||
- Cryptographic key escrow
|
||||
- Quorum managed immutable infrastructure
|
||||
- Software Supply Chain Integrity
|
||||
- Production Engineering Security
|
||||
- Security Hiring
|
||||
- Retained security support
|
||||
- Hardware Security Modules
|
||||
- Physical Security
|
||||
- Business Continuity Planning
|
||||
- Planning for Black Swan events.
|
|
@ -0,0 +1 @@
|
|||
<svg id="svg1681" xmlns="http://www.w3.org/2000/svg" width="300" height="77.54" viewBox="0 0 300 77.54"><defs><style>.cls-1{fill:#fff;}</style></defs><path class="cls-1" d="M56.15,0H21.39A21.39,21.39,0,0,0,0,21.39V56.15A21.39,21.39,0,0,0,21.39,77.54H56.15A21.38,21.38,0,0,0,77.54,56.15V21.39A21.39,21.39,0,0,0,56.15,0ZM5.76,40.46V37.89a2.62,2.62,0,0,1,1-2.35L22.21,20.06a2.6,2.6,0,0,1,2.35-1h2.58a2.6,2.6,0,0,1,2.35,1l9.56,9.6-4.7,4.69-8.5-8.53L12.49,39.18,21,47.72l-4.7,4.69-9.57-9.6A2.63,2.63,0,0,1,5.76,40.46Zm9.83,24.83a1.12,1.12,0,0,1-1.59,0l-2.65-2.65a1.12,1.12,0,0,1,0-1.59L60.54,11.86a1.11,1.11,0,0,1,1.59,0l2.65,2.64a1.13,1.13,0,0,1,0,1.6ZM71.78,40.47a2.6,2.6,0,0,1-1,2.34L55.33,58.29a2.62,2.62,0,0,1-2.35,1H50.41a2.62,2.62,0,0,1-2.35-1L37.21,47.35l4.69-4.69,9.8,9.86L65.06,39.17l-9.8-9.87L60,24.61,70.82,35.55a2.66,2.66,0,0,1,1,2.34Z"/><g id="layer2"><g id="text2555-4-2-6"><path id="path2692-8-9-2" class="cls-1" d="M107.08,27.21h-6.39v24h6.72q11.78,0,11.78-12.5,0-6-2.89-8.76t-9.22-2.79ZM91,59.39V19.08H108.3q10.33,0,15.38,5.15t5.09,14.53q0,9.24-5.45,15t-15,5.67Z"/><path id="path2694-4-8-6" class="cls-1" d="M140.84,24.19h-9.55v-6h9.55Zm-.13,35.2h-9.22V27.54h9.22Z"/><path id="path2696-0-2-4" class="cls-1" d="M157.93,60.34a23.8,23.8,0,0,1-5.61-.59,14,14,0,0,1-4-1.51,10.25,10.25,0,0,1-2.75-2.36A11.37,11.37,0,0,1,143.82,53a16.49,16.49,0,0,1-.88-3.38l8.53-1.67a8.24,8.24,0,0,0,2.26,4.23,6.35,6.35,0,0,0,4.39,1.41c2.93,0,4.43-1,4.5-3a2.55,2.55,0,0,0-1.41-2.23,19.62,19.62,0,0,0-5.51-1.67q-6.57-1.38-9.25-3.74a8.06,8.06,0,0,1-2.69-6.4,8.59,8.59,0,0,1,3.34-7.21q3.38-2.59,9.94-2.59c4.37,0,7.66.83,9.84,2.49a11.52,11.52,0,0,1,4.27,7.18l-8.73,1.94a7.43,7.43,0,0,0-1.87-3.84A4.9,4.9,0,0,0,157,33.25a5.38,5.38,0,0,0-3.09.75,2.38,2.38,0,0,0-1.08,2.07,2.72,2.72,0,0,0,.43,1.6,4.79,4.79,0,0,0,2,1.28,24.33,24.33,0,0,0,4.59,1.22c4.35.85,7.41,2.1,9.15,3.74a8.21,8.21,0,0,1,2.63,6.26,9.05,9.05,0,0,1-3.38,7.51q-3.37,2.67-10.33,2.66Z"/><path id="path2698-80-9-7" class="cls-1" d="M176.1,49.39V35.21h-3.7V27.54h3.7v-8h9.12v8h8.4v7.67h-8.4V47.65A4.1,4.1,0,0,0,186,50.5a3.9,3.9,0,0,0,2.89.89,23.86,23.86,0,0,0,4.16-.72l1,8.46a30.76,30.76,0,0,1-3.64.92,21.64,21.64,0,0,1-3.9.29q-5.25,0-7.88-3.05A11.82,11.82,0,0,1,176.1,49.39Z"/><path id="path2700-6-5-4" class="cls-1" d="M205.26,59.39h-9.21V27.54h9.21V38.89h.13a35.72,35.72,0,0,1,1.35-5.84,9.57,9.57,0,0,1,1.9-3.48A6,6,0,0,1,211,28a9.07,9.07,0,0,1,3-.43h1.54V38h-3.48c-2.6,0-4.38.43-5.34,1.31s-1.45,2.49-1.45,4.85Z"/><path id="path2702-9-9-3" class="cls-1" d="M237.61,59.39V50.53h-.13q-1,5.22-3.71,7.52a9.75,9.75,0,0,1-6.66,2.29c-3.34,0-5.83-1-7.44-3.05s-2.43-4.85-2.43-8.46V27.54h9.21v18.7a6.65,6.65,0,0,0,1.28,4.26,5,5,0,0,0,4,1.58,5.31,5.31,0,0,0,5.84-5.84V27.54h9.12V59.39Z"/><path id="path2704-7-46-3" class="cls-1" d="M263.82,60.34a23.8,23.8,0,0,1-5.61-.59,13.93,13.93,0,0,1-4-1.51,10.1,10.1,0,0,1-2.75-2.36A11.37,11.37,0,0,1,249.71,53a15.87,15.87,0,0,1-.88-3.38l8.53-1.67a8.17,8.17,0,0,0,2.26,4.23A6.35,6.35,0,0,0,264,53.55c2.93,0,4.43-1,4.5-3a2.55,2.55,0,0,0-1.41-2.23,19.62,19.62,0,0,0-5.51-1.67q-6.57-1.38-9.25-3.74a8.06,8.06,0,0,1-2.69-6.4A8.59,8.59,0,0,1,253,29.28q3.38-2.59,9.94-2.59t9.84,2.49A11.52,11.52,0,0,1,277,36.36l-8.73,1.94a7.43,7.43,0,0,0-1.87-3.84,4.9,4.9,0,0,0-3.57-1.21,5.41,5.41,0,0,0-3.09.75,2.38,2.38,0,0,0-1.08,2.07,2.72,2.72,0,0,0,.43,1.6,4.79,4.79,0,0,0,2,1.28,24.33,24.33,0,0,0,4.59,1.22q6.53,1.28,9.16,3.74a8.24,8.24,0,0,1,2.62,6.26,9.05,9.05,0,0,1-3.38,7.51q-3.37,2.67-10.33,2.66Z"/><path id="path2706-2-4-1" class="cls-1" d="M282,49.39V35.21h-3.71V27.54H282v-8h9.12v8h8.4v7.67h-8.4V47.65a4.1,4.1,0,0,0,.82,2.85,3.9,3.9,0,0,0,2.89.89,24.16,24.16,0,0,0,4.16-.72l1,8.46a31.25,31.25,0,0,1-3.64.92,21.72,21.72,0,0,1-3.9.29q-5.25,0-7.88-3.05A11.77,11.77,0,0,1,282,49.39Z"/></g></g></svg>
|
After Width: | Height: | Size: 3.7 KiB |
|
@ -0,0 +1 @@
|
|||
<svg id="svg1681" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 393.45 322.36"><defs><style>.cls-1{fill:#fff;}</style></defs><g id="layer1"><path id="path1927-7-5-9-8-2-7-6-3-3-4-5-3-2-2-0" class="cls-1" d="M112.06,45.08c-5.26,0-8.16,0-14,5.8L5.8,143.13C0,148.91,0,151.87,0,157.11v15.32c0,5.24,0,8.19,5.77,14l57.05,57.26,28-28L40.13,164.81l79.58-79.58L170.4,136.1l28-28-57-57.18c-5.9-5.89-8.75-5.82-14-5.83Z" transform="translate(0 0)"/><path id="path1931-4-9-5-1-0-2-97-3-8-9-0-1-4-7-55" class="cls-1" d="M323,78l-28,28,58.41,58.81L273.8,244.33l-58.4-58.81-28,28,64.68,65.12c5.86,5.86,8.74,5.83,14,5.84l15.28,0c5.26,0,8.22,0,14-5.8l92.26-92.25c5.78-5.78,5.78-8.72,5.79-14V157.14c0-5.23-.11-8.3-5.74-14Z" transform="translate(0 0)"/><g id="g2384"><path id="path2388" class="cls-1" d="M336,2l15.78,15.78a6.69,6.69,0,0,1,0,9.49L58.59,320.39a6.69,6.69,0,0,1-9.49,0L33.32,304.62a6.71,6.71,0,0,1,0-9.5L326.47,2A6.69,6.69,0,0,1,336,2Z" transform="translate(0 0)"/></g></g></svg>
|
After Width: | Height: | Size: 974 B |
Binary file not shown.
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
title: /contact
|
||||
layout: home
|
||||
permalink: /contact
|
||||
---
|
||||
|
||||
## Team
|
||||
|
||||
- Lance Vick \<[lance@distrust.co](mailto:lance@distrust.co)\> [6B61 ECD7 6088 748C 7059 0D55 E90A 4013 36C8 AAA9](https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x6b61ecd76088748c70590d55e90a401336c8aaa9)
|
||||
- Ryan Heywood \<[ryan@distrust.co](mailto:ryan@distrust.co)\> [8882 3A75 ECAA 786B 0FF3 8B14 8E40 1478 A3FB EF72](https://keys.openpgp.org/vks/v1/by-fingerprint/88823A75ECAA786B0FF38B148E401478A3FBEF72)
|
||||
- Anton Leviathon
|
||||
- Shane Engelman \<[shane@distrust.co](mailto:shane@distrust.co)\> [3D7C 8D39 E8C4 DF77 1583 D3F0 A8A0 91FD 3460 01CA](https://keys.openpgp.org/vks/v1/by-fingerprint/3D7C8D39E8C4DF771583D3F0A8A091FD346001CA)
|
||||
|
||||
## Sales
|
||||
|
||||
- [sales@distrust.co](mailto:sales@distrust.co)
|
||||
|
||||
|
||||
## General
|
||||
|
||||
- [team@distrust.co](mailto:team@distrust.co)
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
title: /home
|
||||
layout: home
|
||||
permalink: /
|
||||
---
|
||||
|
||||
We are a group of pentesters, software engineers, and security architects that believe security compromises to your systems and personnel are *inevitable*.
|
||||
|
||||
We specialize in helping you understand and mitigate the hard security problems most won't see coming._
|
Loading…
Reference in New Issue