PageSourceSearch

https://trustoverip.org/blog/2024/04/11/toip-announces-the-first-i…-the-trust-spanning-protocol-specification/

html trustoverip.org collected 2026-10-02 05:03:05 UTC 114,511 bytes, 1,218 lines download raw bytes

1<!doctype html>
2<html lang="en-US" class="no-js">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" /><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
6
7<!-- Google Tag Manager for WordPress by gtm4wp.com -->
8<script data-cfasync="false" data-pagespeed-no-defer type="text/javascript">
9	var gtm4wp_datalayer_name = "dataLayer";
10	var dataLayer = dataLayer || [];
11</script>
11
12<!-- End Google Tag Manager for WordPress by gtm4wp.com -->
13	<!-- This site is optimized with the Yoast SEO plugin v28.5 - https://yoast.com/product/yoast-seo-wordpress/ -->
14	<title>ToIP Announces the First Implementers Draft of the Trust Spanning Protocol Specification - Trust Over IP</title>
15	<link rel="canonical" href="https://trustoverip.org/blog/2024/04/11/toip-announces-the-first-implementers-draft-of-the-trust-spanning-protocol-specification/" />
16	<meta property="og:locale" content="en_US" />
17	<meta property="og:type" content="article" />
18	<meta property="og:title" content="ToIP Announces the First Implementers Draft of the Trust Spanning Protocol Specification - Trust Over IP" />
19	<meta property="og:description" content="Read about a protocol that is to digital trust what the Internet Protocol (IP) is to digital data." />
20	<meta property="og:url" content="https://trustoverip.org/blog/2024/04/11/toip-announces-the-first-implementers-draft-of-the-trust-spanning-protocol-specification/" />
21	<meta property="og:site_name" content="Trust Over IP" />
22	<meta property="article:published_time" content="2024-04-11T21:31:09+00:00" />
23	<meta property="article:modified_time" content="2024-04-11T21:31:10+00:00" />
24	<meta property="og:image" content="https://trustoverip.org/wp-content/uploads/bridge-spanning-protocol-sm.jpg" />
25	<meta name="author" content="trustoverip" />
26	<meta name="twitter:card" content="summary_large_image" />
27	<meta name="twitter:label1" content="Written by" />
28	<meta name="twitter:data1" content="trustoverip" />
29	<meta name="twitter:label2" content="Est. reading time" />
30	<meta name="twitter:data2" content="11 minutes" />
31	
31<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[]}</script>
31
32	<!-- / Yoast SEO plugin. -->
33
34
35<link rel='dns-prefetch' href='//use.fontawesome.com' />
36<link rel='dns-prefetch' href='//fonts.googleapis.com' />
37<link rel="alternate" type="application/rss+xml" title="Trust Over IP &raquo; Feed" href="https://trustoverip.org/feed/" />
38<style id="wp-img-auto-sizes-contain-inline-css">
39img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
40/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
41</style>
42<style id="wp-emoji-styles-inline-css">
43
44	img.wp-smiley, img.emoji {
45		display: inline !important;
46		border: none !important;
47		box-shadow: none !important;
48		height: 1em !important;
49		width: 1em !important;
50		margin: 0 0.07em !important;
51		vertical-align: -0.1em !important;
52		background: none !important;
53		padding: 0 !important;
54	}
55/*# sourceURL=wp-emoji-styles-inline-css */
56</style>
57<style id="wp-block-library-inline-css">
58:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
58--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
59
60/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
61</style>
62<style id="wp-block-heading-inline-css">
63h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
64/*# sourceURL=https://trustoverip.org/wp-includes/blocks/heading/style.min.css */
65</style>
66<style id="wp-block-image-inline-css">
67.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;
67cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}
67@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}
68/*# sourceURL=https://trustoverip.org/wp-includes/blocks/image/style.min.css */
69</style>
70<style id="wp-block-list-inline-css">
71ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em}
72/*# sourceURL=https://trustoverip.org/wp-includes/blocks/list/style.min.css */
73</style>
74<style id="wp-block-paragraph-inline-css">
75.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
76/*# sourceURL=https://trustoverip.org/wp-includes/blocks/paragraph/style.min.css */
77</style>
78<style id="wp-block-table-inline-css">
79.wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:transparent;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:transparent}.wp-block-table.is-style-stripes{border-bottom:1px solid #f0f0f0}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:currentColor}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:currentColor}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit}
80/*# sourceURL=https://trustoverip.org/wp-includes/blocks/table/style.min.css */
81</style>
82
83
84<style id="global-styles-inline-css">
85:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
850) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:root { --wp--style--global--content-size: 1300px;--wp--style--global--wide-size: 1300px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
85.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
86/*# sourceURL=global-styles-inline-css */
87</style>
88
89<link rel='stylesheet' id='salient-social-css' href='https://trustoverip.org/wp-content/plugins/salient-social/css/style.css?ver=1.2.6' media='all' />
90<style id="salient-social-inline-css">
91
92  .sharing-default-minimal .nectar-love.loved,
93  body .nectar-social[data-color-override="override"].fixed > a:before, 
94  body .nectar-social[data-color-override="override"].fixed .nectar-social-inner a,
95  .sharing-default-minimal .nectar-social[data-color-override="override"] .nectar-social-inner a:hover,
96  .nectar-social.vertical[data-color-override="override"] .nectar-social-inner a:hover {
97    background-color: #3c529f;
98  }
99  .nectar-social.hover .nectar-love.loved,
100  .nectar-social.hover > .nectar-love-button a:hover,
101  .nectar-social[data-color-override="override"].hover > div a:hover,
102  #single-below-header .nectar-social[data-color-override="override"].hover > div a:hover,
103  .nectar-social[data-color-override="override"].hover .share-btn:hover,
104  .sharing-default-minimal .nectar-social[data-color-override="override"] .nectar-social-inner a {
105    border-color: #3c529f;
106  }
107  #single-below-header .nectar-social.hover .nectar-love.loved i,
108  #single-below-header .nectar-social.hover[data-color-override="override"] a:hover,
109  #single-below-header .nectar-social.hover[data-color-override="override"] a:hover i,
110  #single-below-header .nectar-social.hover .nectar-love-button a:hover i,
111  .nectar-love:hover i,
112  .hover .nectar-love:hover .total_loves,
113  .nectar-love.loved i,
114  .nectar-social.hover .nectar-love.loved .total_loves,
115  .nectar-social.hover .share-btn:hover, 
116  .nectar-social[data-color-override="override"].hover .nectar-social-inner a:hover,
117  .nectar-social[data-color-override="override"].hover > div:hover span,
118  .sharing-default-minimal .nectar-social[data-color-override="override"] .nectar-social-inner a:not(:hover) i,
119  .sharing-default-minimal .nectar-social[data-color-override="override"] .nectar-social-inner a:not(:hover) {
120    color: #3c529f;
121  }
122/*# sourceURL=salient-social-inline-css */
123</style>
124<link rel='stylesheet' id='people-grid-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/vc-addons/css/people.css?ver=18.3.0' media='all' />
125<link rel='stylesheet' id='salient-child-featherlight-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/vc-addons/css/featherlight.css?ver=7.1.1' media='all' />
126<link rel='stylesheet' id='youtube-playlist-css' href='https://trustoverip.org/wp-content/themes/salient-child/vc-addons/css/youtube-playlist.css?ver=1.0.0' media='all' />
127<link rel='stylesheet' id='cookie-settings-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/includes/cookie-settings/cookie-settings.css?ver=18.3.0' media='all' />
128<link rel='stylesheet' id='salient-child-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/style.css?ver=18.3.0' media='all' />
129<link rel='stylesheet' id='vc-addons-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/vc-addons/css/vc-addons.css?ver=18.3.0' media='all' />
130<link rel='stylesheet' id='templates-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/templates/css/templates.css?ver=1790829601' media='all' />
131<link rel='stylesheet' id='widgets-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/widgets/css/widgets.css?ver=18.3.0' media='all' />
132<link rel='stylesheet' id='results-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/search-filter/css/results.css?ver=18.3.0' media='all' />
133<link rel='stylesheet' id='fonts-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/fonts/fonts.css?ver=18.3.0' media='all' />
134<link rel='stylesheet' id='events-calendar-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/css/events-calendar.css?ver=18.3.0' media='all' />
135<link rel='stylesheet' id='linux-foundation-components-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/vc-addons/css/linux-foundation-components.css?ver=18.3.0' media='all' />
136<link rel='stylesheet' id='latest-posts-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/vc-addons/css/latest-posts.css?ver=18.3.0' media='all' />
137<link rel='stylesheet' id='projects-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/vc-addons/css/projects.css?ver=18.3.0' media='all' />
138<link rel='stylesheet' id='members-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/vc-addons/css/members.css?ver=18.3.0' media='all' />
139<link rel='stylesheet' id='insights-style-css' href='https://trustoverip.org/wp-content/themes/salient-child/templates/css/insights.css?ver=1790829601' media='all' />
140<link rel='stylesheet' id='font-awesome-css' href='https://use.fontawesome.com/releases/v6.0.0/css/all.css?ver=6.0.0' media='all' />
141<link rel='stylesheet' id='font-awesome-shim-css' href='https://use.fontawesome.com/releases/v6.0.0/css/v4-shims.css?ver=6.0.0' media='all' />
142<link rel='stylesheet' id='salient-grid-system-css' href='https://trustoverip.org/wp-content/themes/salient/css/build/grid-system.css?ver=18.3.0' media='all' />
143<link rel='stylesheet' id='main-styles-css' href='https://trustoverip.org/wp-content/themes/salient/css/build/style.css?ver=18.3.0' media='all' />
144<link rel='stylesheet' id='nectar-header-layout-centered-menu-css' href='https://trustoverip.org/wp-content/themes/salient/css/build/header/header-layout-centered-menu.css?ver=18.3.0' media='all' />
145<link rel='stylesheet' id='nectar-header-secondary-nav-css' href='https://trustoverip.org/wp-content/themes/salient/css/build/header/header-secondary-nav.css?ver=18.3.0' media='all' />
146<link rel='stylesheet' id='nectar-single-styles-css' href='https://trustoverip.org/wp-content/themes/salient/css/build/single.css?ver=18.3.0' media='all' />
147<link rel='stylesheet' id='nectar_default_font_open_sans-css' href='https://fonts.googleapis.com/css?family=Open+Sans%3A300%2C400%2C600%2C700&#038;subset=latin%2Clatin-ext' media='all' />
148<link rel='stylesheet' id='responsive-css' href='https://trustoverip.org/wp-content/themes/salient/css/build/responsive.css?ver=18.3.0' media='all' />
149<link rel='stylesheet' id='skin-original-css' href='https://trustoverip.org/wp-content/themes/salient/css/build/skin-original.css?ver=18.3.0' media='all' />
150<link rel='stylesheet' id='salient-wp-menu-dynamic-css' href='https://trustoverip.org/wp-content/uploads/salient/menu-dynamic.css?ver=3820' media='all' />
151<link rel='stylesheet' id='dynamic-css-css' href='https://trustoverip.org/wp-content/uploads/salient/salient-dynamic-styles.css?ver=92773' media='all' />
152<style id="dynamic-css-inline-css">
153@media only screen and (min-width:1000px){body #ajax-content-wrap.no-scroll{min-height:calc(100vh - 124px);height:calc(100vh - 124px)!important;}}@media only screen and (min-width:1000px){#page-header-wrap.fullscreen-header,#page-header-wrap.fullscreen-header #page-header-bg,html:not(.nectar-box-roll-loaded) .nectar-box-roll > #page-header-bg.fullscreen-header,.nectar_fullscreen_zoom_recent_projects,#nectar_fullscreen_rows:not(.afterLoaded) > div{height:calc(100vh - 123px);}.wpb_row.vc_row-o-full-height.top-level,.wpb_row.vc_row-o-full-height.top-level > .col.span_12{min-height:calc(100vh - 123px);}html:not(.nectar-box-roll-loaded) .nectar-box-roll > #page-header-bg.fullscreen-header{top:124px;}.nectar-slider-wrap[data-fullscreen="true"]:not(.loaded),.nectar-slider-wrap[data-fullscreen="true"]:not(.loaded) .swiper-container{height:calc(100vh - 122px)!important;}.admin-bar .nectar-slider-wrap[data-fullscreen="true"]:not(.loaded),.admin-bar .nectar-slider-wrap[data-fullscreen="true"]:not(.loaded) .swiper-container{height:calc(100vh - 122px - 32px)!important;}}.admin-bar[class*="page-template-template-no-header"] .wpb_row.vc_row-o-full-height.top-level,.admin-bar[class*="page-template-template-no-header"] .wpb_row.vc_row-o-full-height.top-level > .col.span_12{min-height:calc(100vh - 32px);}body[class*="page-template-template-no-header"] .wpb_row.vc_row-o-full-height.top-level,body[class*="page-template-template-no-header"] .wpb_row.vc_row-o-full-height.top-level > .col.span_12{min-height:100vh;}@media only screen and (max-width:999px){.using-mobile-browser #nectar_fullscreen_rows:not(.afterLoaded):not([data-mobile-disable="on"]) > div{height:calc(100vh - 100px);}.using-mobile-browser .wpb_row.vc_row-o-full-height.top-level,.using-mobile-browser .wpb_row.vc_row-o-full-height.top-level > .col.span_12,[data-permanent-transparent="1"].using-mobile-browser .wpb_row.vc_row-o-full-height.top-level,[data-permanent-transparent="1"].using-mobile-browser .wpb_row.vc_row-o-full-height.top-level > .col.span_12{min-height:calc(100vh - 100px);}html:not(.nectar-box-roll-loaded) .nectar-box-roll > #page-header-bg.fullscreen-header,.nectar_fullscreen_zoom_recent_projects,.nectar-slider-wrap[data-fullscreen="true"]:not(.loaded),.nectar-slider-wrap[data-fullscreen="true"]:not(.loaded) .swiper-container,#nectar_fullscreen_rows:not(.afterLoaded):not([data-mobile-disable="on"]) > div{height:calc(100vh - 47px);}.wpb_row.vc_row-o-full-height.top-level,.wpb_row.vc_row-o-full-height.top-level > .col.span_12{min-height:calc(100vh - 47px);}body[data-transparent-header="false"] #ajax-content-wrap.no-scroll{min-height:calc(100vh - 47px);height:calc(100vh - 47px);}}.screen-reader-text,.nectar-skip-to-content:not(:focus){border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important;}.row .col img:not([srcset]){width:auto;}.row .col img.img-with-animation.nectar-lazy:not([srcset]){width:100%;}
154/* FORCE TWITTER BIRD INTO THE X ICON */
155body .fa.fa-twitter:before {
156	content: "\e918" !important;
157}
158
159header nav .fa.fa-twitter:before,
160header nav .fa.fa-twitter:after {
161	content: "\e918" !important;
162}
163
164.footer-social .fa.fa-twitter:after {
165	display: none !important;
166}
167
168.fa-twitter-square:before {
169	content: "\e918" !important;
170	font-family: icomoon !important;
171}
172
173.nectar-love {
174	display: none !important;
175}
176
177.meta-comment-count {
178	display: none !important;
179}
180
181.home .blog-recent .col .post-header h3,
182.blog-recent .col .post-header h3 {
183	font-size: 24px !important;
184}
185
186#footer-outer #footer-widgets .col ul li a,
187.widget_text {
188	font-size: 14px !important;
189}
190
191#footer-outer #footer-widgets {
192	padding: 0px 0px !important;
193	color: #969696 !important;
194}
195
196@font-face {
197	font-family: "Upstanding Pro Medium";
198	src:
199		url("/wp-content/toip-fonts/upstandingpromedium-webfont.woff2") format("woff2"),
200		url("/wp-content/toip-fonts/upstandingpromedium-webfont.woff") format("woff");
201}
202
203@font-face {
204	font-family: "Bould";
205	src:
206		url("/wp-content/toip-fonts/bould-light-webfont.woff2") format("woff2"),
207		url("/wp-content/toip-fonts/bould-light-webfont.woff") format("woff"),
208		url("/wp-content/toip-fonts/bould-light-webfont.ttf") format("truetype");
209	font-weight: normal;
210	font-style: normal;
211}
212
213@font-face {
214	font-family: "Bould";
215	src:
216		url("/wp-content/toip-fonts/bould-lightitalic-webfont.woff2") format("woff2"),
217		url("/wp-content/toip-fonts/bould-lightitalic-webfont.woff") format("woff"),
218		url("/wp-content/toip-fonts/bould-lightitalic-webfont.ttf") format("truetype");
219	font-weight: normal;
220	font-style: italic;
221}
222
223@font-face {
224	font-family: "Bould";
225	src:
226		url("/wp-content/toip-fonts/bould-bold-webfont.woff2") format("woff2"),
227		url("/wp-content/toip-fonts/bould-bold-webfont.woff") format("woff"),
228		url("/wp-content/toip-fonts/bould-bold-webfont.ttf") format("truetype");
229	font-weight: bold;
230	font-style: normal;
231}
232
233@font-face {
234	font-family: "Bould";
235	src:
236		url("/wp-content/toip-fonts/bould-bolditalic-webfont.woff2") format("woff2"),
237		url("/wp-content/toip-fonts/bould-bolditalic-webfont.woff") format("woff"),
238		url("/wp-content/toip-fonts/bould-bolditalic-webfont.ttf") format("truetype");
239	font-weight: bold;
240	font-style: italic;
241}
242
243@font-face {
244	font-family: "Wotfard";
245	src:
246		url("/wp-content/toip-fonts/wotfard-regular-webfont.woff2") format("woff2"),
247		url("/wp-content/toip-fonts/wotfard-regular-webfont.woff") format("woff"),
248		url("/wp-content/toip-fonts/wotfard-regular-webfont.ttf") format("truetype");
249	font-weight: normal;
250	font-style: normal;
251}
252
253@font-face {
254	font-family: "Wotfard";
255	src:
256		url("/wp-content/toip-fonts/wotfard-regularitalic-webfont.woff2") format("woff2"),
257		url("/wp-content/toip-fonts/wotfard-regularitalic-webfont.woff") format("woff"),
258		url("/wp-content/toip-fonts/wotfard-regularitalic-webfont.ttf") format("truetype");
259	font-weight: normal;
260	font-style: italic;
261}
262
263@font-face {
264	font-family: "Wotfard";
265	src:
266		url("/wp-content/toip-fonts/wotfard-bold-webfont.woff2") format("woff2"),
267		url("/wp-content/toip-fonts/wotfard-bold-webfont.woff") format("woff"),
268		url("/wp-content/toip-fonts/wotfard-bold-webfont.ttf") format("truetype");
269	font-weight: bold;
270	font-style: normal;
271}
272
273@font-face {
274	font-family: "Wotfard";
275	src:
276		url("/wp-content/toip-fonts/wotfard-bolditalic-webfont.woff2") format("woff2"),
277		url("/wp-content/toip-fonts/wotfard-bolditalic-webfont.woff") format("woff"),
278		url("/wp-content/toip-fonts/wotfard-bolditalic-webfont.ttf") format("truetype");
279	font-weight: bold;
280	font-style: italic;
281}
282
283.home .blog-recent .col div.post-header h3.title {
284	font-family: "Upstanding Pro Medium";
285	font-size: 200% !important;
286	line-height: 110%;
287}
288
289/* HUBSPOT FORM */
290.hubspot-form {
291	grid-row-gap: 1.5rem;
292	grid-column-gap: 1.5rem;
293	grid-template-columns: 1fr 1fr;
294	display: grid;
295	margin: 30px 0;
296}
297
298.hubspot-form select,
299.hubspot-form input {
300	background: transparent;
301	border-bottom: 2px solid #00121a;
302	border-radius: 0;
303	color: #00121a;
304	font-size: 16px;
305	height: 50px;
306	line-height: 105%;
307	transition: all 0.25s ease;
308	width: 100%;
309}
310
311.hubspot-form label {
312	font-size: 16px;
313}
314
315.hubspot-form .input input {
316	font-size: 16px;
317	color: #00121a;
318	width: 100% !important;
319}
320
321.hubspot-form select {
322	box-shadow: none;
323	width: 100% !important;
324	border: 1px solid #ccc;
325}
326
327.hubspot-form select.invalid {
328	border-bottom: 2px dashed #00121a;
329}
330
331.hubspot-form select option {
332	background: #ffffff;
333	color: #00121a;
334}
335
336.hs_form_country select.invalid,
337.hubspot-form input.invalid {
338	border-bottom: 2px dashed #00121a;
339}
340
341.hubspot-form ol,
342.hubspot-form ul,
343.hubspot-form li {
344	list-style: none;
345	margin: 0;
346}
347
348.hubspot-form .no-list.hs-error-msgs.inputs-list {
349	margin: 0;
350	margin-top: 0px;
351	font-size: 12px;
352	margin-top: 5px;
353	line-height: 18px;
354}
355
356.hubspot-form .hs-form-checkbox-display input {
357	width: 15px;
358	height: 15px;
359}
360
361.hubspot-form .hs-button.primary.large {
362	border: none;
363	text-transform: uppercase;
364	border-radius: 5px !important;
365	max-width: 250px;
366	background: #3c529f;
367	color: #ffffff;
368}
369
370.hubspot-form .hs-button.primary.large:focus {
371	background: #fdb515 !important;
372}
373
374.hubspot-form .hs-form-checkbox {
375	padding-bottom: 10px;
376}
377
378.hubspot-form .hs-form-checkbox:first-of-type {
379	padding-top: 10px;
380}
381
382.hs_error_rollup {
383	display: none;
384}
385
386.hubspot-form .hs-form-booleancheckbox label {
387	font-size: 16px;
388	line-height: 22px;
389}
390
391.hubspot-form .hs-form-booleancheckbox-display input {
392	height: 100% !important;
393	vertical-align: top;
394	width: 13px !important;
395}
396
397.hubspot-form .hs-form-booleancheckbox-display span {
398	margin-left: 30px;
399}
400
401.hubspot-form .legal-consent-container input {
402	height: auto;
403	width: 20px;
404	margin-left: 0;
405}
406
407.hubspot-form .legal-consent-container {
408	font-size: 16px;
409	line-height: 26px;
410}
411
412.hubspot-form .legal-consent-container span {
413	color: #00121a !important;
414}
415
416.hubspot-form .legal-consent-container .field.hs-form-field {
417	margin-bottom: 0;
418}
419
420.original[data-form-style="default"] .hubspot-form input[type="text"]:focus {
421	background-color: transparent;
422}
423
424.hubspot-form-privacy {
425	font-size: 16px;
426	line-height: 24px;
427}
428
429.hubspot-form .hs-form_comments.hs-fieldtype-textarea.field.hs-form-field {
430	grid-column: 1 / -1;
431}
432
433.hubspot-form .hs_submit.hs-submit {
434	grid-area: 6;
435}
436
437.hubspot-form input::placeholder {
438	opacity: 1;
439	color: #00121a;
440	font-size: 16px;
441	height: 50px;
442	line-height: 105%;
443}
444
445.hubspot-form .hs-fieldtype-textarea,
446.hubspot-form .hs-fieldtype-textarea::placeholder {
447	color: #00121a;
448	font-size: 16px;
449	line-height: 24px;
450	height: 100px;
451}
452
453.hubspot-form fieldset {
454	width: 100% !important;
455	max-width: 100% !important;
456}
457
458.hubspot-form fieldset:nth-child(5) {
459	grid-column: 1 / 3;
460}
461
462.hubspot-form .hs_submit.hs-submit {
463	grid-area: 4;
464}
465/*# sourceURL=dynamic-css-inline-css */
466</style>
467<link rel='stylesheet' id='redux-google-fonts-salient_redux-css' href='https://fonts.googleapis.com/css?family=Roboto:400,500,300&#038;ver=7.1.1' media='all' />
468<script id="jquery-core-js" src="https://trustoverip.org/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 468
468
469<script id="jquery-migrate-js" src="https://trustoverip.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 469
469
470<script type="text/javascript" nonce="37d9aaf48a91c10877e6f6f7877d0ecb"></script>
470<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://trustoverip.org/xmlrpc.php?rsd" />
471<meta name="generator" content="WordPress 7.1.1" />
472<link rel='shortlink' href='https://trustoverip.org/?p=1964' />
473
474<!-- Google Tag Manager for WordPress by gtm4wp.com -->
475<!-- GTM Container placement set to footer -->
476<script data-cfasync="false" data-pagespeed-no-defer type="text/javascript">
477	var dataLayer_content = {"pagePostType":"post","pagePostType2":"single-post","pageCategory":["blog"],"pagePostAuthor":"trustoverip"};
478	dataLayer.push( dataLayer_content );
479</script>
vendor: 1 bytes, line 479
479
480<script data-cfasync="false" data-pagespeed-no-defer type="text/javascript">
vendor: 322 bytes, lines 480-485
480
481(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
482new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
483j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
484'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
485})(window,document,'script','dataLayer','
485GTM-M836LKM
vendor: 4 bytes, line 485
485');
486</script>
486
487<!-- End Google Tag Manager for WordPress by gtm4wp.com -->
487<script type="text/javascript" nonce="37d9aaf48a91c10877e6f6f7877d0ecb"> var root = document.getElementsByTagName( "html" )[0]; root.setAttribute( "class", "js" ); </script>
487<script
488  src="https://transcend-cdn.com/cm/f484e2d0-ad2e-43a9-9d64-d07f6fa20966/airgap.js"
489  data-cfasync="false"
490  data-prompt="auto"
491></script>
491
492<!-- LFX Segments Analytics -->
493<script src="https://lfx-segment.platform.linuxfoundation.org/latest/lfx-segment-analytics.min.js"></script>
vendor: 2 bytes, line 493
493
494<script type="text/javascript" nonce="37d9aaf48a91c10877e6f6f7877d0ecb">
495  // Initialize with default configuration (no custom write key needed)
496  LfxAnalytics.LfxSegmentsAnalytics.getInstance().init();
497</script>
497
498<!-- Google Tag Manager -->
499<script type="text/javascript" nonce="37d9aaf48a91c10877e6f6f7877d0ecb">
vendor: 331 bytes, lines 499-503
499(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
500new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
501j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
502'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
503})(window,document,'script','dataLayer','
503GTM-M836LKM
vendor: 3 bytes, line 503
503');
503</script>
503
504<!-- End Google Tag Manager --><meta name="generator" content="Powered by WPBakery Page Builder - drag and drop page builder for WordPress."/>
505<link rel="icon" href="https://trustoverip.org/wp-content/uploads/cropped-Trust_over_IP_color-32x32.png" sizes="32x32" />
506<link rel="icon" href="https://trustoverip.org/wp-content/uploads/cropped-Trust_over_IP_color-192x192.png" sizes="192x192" />
507<link rel="apple-touch-icon" href="https://trustoverip.org/wp-content/uploads/cropped-Trust_over_IP_color-180x180.png" />
508<meta name="msapplication-TileImage" content="https://trustoverip.org/wp-content/uploads/cropped-Trust_over_IP_color-270x270.png" />
509<style id="wp-custom-css">
510.toip-homepage-larger {
511	font-size: 150%;
512	line-height: normal;
513}
514
515.toip-larger-250 {
516	font-size:250%;
517	line-height: 110%;
518}
519
520.toip-larger-200, .top-larger-200 strong {
521	font-size:200%;
522	line-height: 110%;
523}
524
525.toip-larger-150 {
526	font-size: 150%;
527	line-height: 110%;
528}
529
530body #top nav ul li a{
531  color: inherit;
532}
533
534body #header-outer .sf-menu li ul li a {
535	color: inherit;
536}
537
538body .Trust_over_IP_color {
539	width: 120px !important;
540	height: auto  !important;
541	margin: 0 auto !important;
542}
543
544body.page-id-2019 .main-content {
545	background-color: #00005c;
546}
547</style>
548<noscript><style> .wpb_animate_when_almost_visible { opacity: 1; }</style></noscript><link data-pagespeed-no-defer data-nowprocket data-wpacu-skip data-no-optimize data-noptimize rel='stylesheet' id='main-styles-non-critical-css' href='https://trustoverip.org/wp-content/themes/salient/css/build/style-non-critical.css?ver=18.3.0' media='all' />
549<link data-pagespeed-no-defer data-nowprocket data-wpacu-skip data-no-optimize data-noptimize rel='stylesheet' id='magnific-css' href='https://trustoverip.org/wp-content/themes/salient/css/build/plugins/magnific.css?ver=8.6.0' media='all' />
550<link data-pagespeed-no-defer data-nowprocket data-wpacu-skip data-no-optimize data-noptimize rel='stylesheet' id='nectar-ocm-core-css' href='https://trustoverip.org/wp-content/themes/salient/css/build/off-canvas/core.css?ver=18.3.0' media='all' />
551
552</head><body class="wp-singular post-template-default single single-post postid-1964 single-format-standard wp-theme-salient wp-child-theme-salient-child original wpb-js-composer js-comp-ver-8.7.3 vc_responsive" data-footer-reveal="false" data-footer-reveal-shadow="none" data-header-format="centered-menu" data-body-border="off" data-boxed-style="" data-header-breakpoint="1130" data-dropdown-style="minimal" data-cae="easeOutCubic" data-cad="650" data-megamenu-width="contained" data-aie="none" data-ls="magnific" data-apte="standard" data-hhun="0" data-fancy-form-rcs="default" data-form-style="default" data-form-submit="default" data-is="minimal" data-button-style="rounded" data-user-account-button="false" data-flex-cols="true" data-col-gap="default" data-header-inherit-rc="false" data-header-search="true" data-animated-anchors="true" data-ajax-transitions="false" data-full-width-header="false" data-slide-out-widget-area="true" data-slide-out-widget-area-style="slide-out-from-right" data-user-set-ocm="off" data-loading-animation="none" data-bg-header="false" data-responsive="1" data-ext-responsive="true" data-ext-padding="90" data-header-resize="1" data-header-color="custom" data-transparent-header="false" data-cart="false" data-remove-m-parallax="" data-remove-m-video-bgs="" data-m-animate="0" data-force-header-trans-color="light" data-smooth-scrolling="0" data-permanent-transparent="false" >
553    
554    
554<script type="text/javascript" nonce="37d9aaf48a91c10877e6f6f7877d0ecb">
555	 (function(window, document) {
556
557		document.documentElement.classList.remove("no-js");
558
559		if(navigator.userAgent.match(/(Android|iPod|iPhone|iPad|BlackBerry|IEMobile|Opera Mini)/)) {
560			document.body.className += " using-mobile-browser mobile ";
561		}
562		if(navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2) {
563			document.body.className += " using-ios-device ";
564		}
565
566		if( !("ontouchstart" in window) ) {
567
568			var body = document.querySelector("body");
569			var winW = window.innerWidth;
570			var bodyW = body.clientWidth;
571
572			if (winW > bodyW + 4) {
573
574				var vwTestEl = document.createElement("div");
575				vwTestEl.style.position = "absolute";
576				vwTestEl.style.top = "-9999px";
577				vwTestEl.style.width = "100vw";
578				body.appendChild(vwTestEl);
579				var vwWidth = vwTestEl.offsetWidth;
580				body.removeChild(vwTestEl);
581
582				if (vwWidth > bodyW + 4) {
583					body.setAttribute("style", "--scroll-bar-w: " + (winW - bodyW - 4) + "px");
584				} else {
585					body.setAttribute("style", "--scroll-bar-w: 0px");
586				}
587
588			} else {
589				body.setAttribute("style", "--scroll-bar-w: 0px");
590			}
591		}
592
593	 })(window, document);
594   </script>
594<!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 594-595
594
595<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
595GTM-M836LKM
vendor: 85 bytes, lines 595-596
595"
596height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
597<!-- End Google Tag Manager (noscript) --><nav aria-label="Skip links" class="nectar-skip-to-content-wrap" data-nosnippet><a href="#ajax-content-wrap" class="nectar-skip-to-content">Skip to main content</a></nav>	
598	<div id="header-space"  data-header-mobile-fixed='1'></div> 
599	
600	    <div id="header-outer" data-has-menu="true" data-has-buttons="yes" data-header-button_style="default" data-using-pr-menu="true" data-mobile-fixed="1" data-ptnm="false" data-lhe="default" data-user-set-bg="#eae6d5" data-format="centered-menu" data-permanent-transparent="false" data-megamenu-rt="0" data-remove-fixed="0" data-header-resize="1" data-cart="false" data-transparency-option="0" data-box-shadow="small" data-shrink-num="6" data-using-secondary="1" data-using-logo="1" data-logo-height="50" data-m-logo-height="24" data-padding="20" data-full-width="false" data-condense="false" >
601        
602	<div id="header-secondary-outer" class="centered-menu" data-mobile="default" data-remove-fixed="0" data-lhe="default" data-secondary-text="true" data-full-width="false" data-mobile-fixed="1" data-permanent-transparent="false" >
603		<div class="container">
604			<nav aria-label="Secondary Navigation">
605				<ul id="social"><li><a target="_blank" rel="noopener" href="https://twitter.com/trustoverip"><span class="screen-reader-text">twitter</span><i class="fa fa-twitter" aria-hidden="true"></i> </a></li><li><a target="_blank" rel="noopener" href="https://www.linkedin.com/company/trust-over-ip-foundation"><span class="screen-reader-text">linkedin</span><i class="fa fa-linkedin" aria-hidden="true"></i> </a></li></ul><div class="nectar-center-text"><a href="http://lf-toip.atlassian.net/">Go to Members Wiki »</a></div>					<ul class="sf-menu">
606											</ul>
607					
608			</nav>
609		</div>
610	</div>
611
612
613<div id="search-outer" class="nectar" data-nosnippet>
614	<div id="search">
615		<div class="container">
616			 <div id="search-box">
617				 <div class="inner-wrap">
618					 <div class="col span_12">
619						  <form role="search" action="https://trustoverip.org/" method="GET">
620															<input type="text" name="s"  value="Start Typing..." aria-label="Search" data-placeholder="Start Typing..." />
621							
622						
623						<button aria-label="Search" class="search-box__button" type="submit">Search</button>						</form>
624					</div><!--/span_12-->
625				</div><!--/inner-wrap-->
626			 </div><!--/search-box-->
627			 <div id="close"><a href="#" role="button"><span class="screen-reader-text">Close Search</span>
628				<span class="icon-salient-x" aria-hidden="true"></span>				 </a></div>
629		 </div><!--/container-->
630	</div><!--/search-->
631</div><!--/search-outer-->
632
633<header id="top" role="banner" aria-label="Main Menu">
634		<div class="container">
635		<div class="row">
636			<div class="col span_3">
637								<a id="logo" href="https://trustoverip.org" data-supplied-ml-starting-dark="false" data-supplied-ml-starting="false" data-supplied-ml="false" >
638					<img class="stnd skip-lazy dark-version" width="1200" height="420" alt="Trust Over IP" src="https://trustoverip.org/wp-content/uploads/Trust_over_IP_color.png"  />				</a>
639							</div><!--/span_3-->
640
641			<div class="col span_9 col_last">
642									<div class="nectar-mobile-only mobile-header"><div class="inner"></div></div>
643									<a class="mobile-search" href="#searchbox"><span class="nectar-icon icon-salient-search" aria-hidden="true"></span><span class="screen-reader-text">search</span></a>
644														<div class="slide-out-widget-area-toggle mobile-icon slide-out-from-right" data-custom-color="false" data-icon-animation="simple-transform">
645						<div> <a href="#slide-out-widget-area" role="button" aria-label="Navigation Menu" aria-expanded="false" class="closed">
646							<span class="screen-reader-text">Menu</span><span aria-hidden="true"> <i class="lines-button x2"> <i class="lines"></i> </i> </span>						</a></div>
647					</div>
648				
649									<nav aria-label="Main Menu">
650													<ul class="sf-menu">
651								<li id="menu-item-552" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children nectar-regular-menu-item sf-with-ul menu-item-552"><a aria-haspopup="true" aria-expanded="false"><span class="menu-title-text">Why ToIP?</span><span class="sf-sub-indicator"><i class="fa fa-angle-down icon-in-menu" aria-hidden="true"></i></span></a>
652<ul class="sub-menu">
653	<li id="menu-item-539" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-539"><a href="https://trustoverip.org/why-toip/overview/"><span class="menu-title-text">Overview</span></a></li>
654	<li id="menu-item-540" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-540"><a href="https://trustoverip.org/why-toip/benefits/"><span class="menu-title-text">Benefits</span></a></li>
655</ul>
656</li>
657<li id="menu-item-2080" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-2080"><a href="https://trustoverip.org/toip-model/"><span class="menu-title-text">The ToIP Model</span></a></li>
658<li id="menu-item-553" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children nectar-regular-menu-item sf-with-ul menu-item-553"><a aria-haspopup="true" aria-expanded="false"><span class="menu-title-text">Our Work</span><span class="sf-sub-indicator"><i class="fa fa-angle-down icon-in-menu" aria-hidden="true"></i></span></a>
659<ul class="sub-menu">
660	<li id="menu-item-2522" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-2522"><a href="https://trustoverip.org/bite-size-trust/"><span class="menu-title-text">Bite-Size Trust</span></a></li>
661	<li id="menu-item-556" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-556"><a href="https://trustoverip.org/our-work/deliverables/"><span class="menu-title-text">Deliverables</span></a></li>
662	<li id="menu-item-1590" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-1590"><a href="https://trustoverip.org/our-work/technical-architecture/"><span class="menu-title-text">Technology Architecture</span></a></li>
663	<li id="menu-item-1589" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-1589"><a href="https://trustoverip.org/our-work/evolution-of-the-toip-stack/"><span class="menu-title-text">Evolution of the ToIP Stack</span></a></li>
664	<li id="menu-item-633" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-633"><a href="https://trustoverip.org/get-involved/working-groups/"><span class="menu-title-text">Working Groups</span></a></li>
665	<li id="menu-item-1333" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-1333"><a href="https://trustoverip.org/our-work/design-principles/"><span class="menu-title-text">Design Principles</span></a></li>
666	<li id="menu-item-800" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-800"><a href="https://trustoverip.org/get-involved/good-health-pass-implementation/"><span class="menu-title-text">Good Health Pass: An Ecosystem Story</span></a></li>
667</ul>
668</li>
669<li id="menu-item-537" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-537"><a href="https://trustoverip.org/about/news/"><span class="menu-title-text">Blog</span></a></li>
670<li id="menu-item-1619" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children nectar-regular-menu-item sf-with-ul menu-item-1619"><a aria-haspopup="true" aria-expanded="false"><span class="menu-title-text">Events</span><span class="sf-sub-indicator"><i class="fa fa-angle-down icon-in-menu" aria-hidden="true"></i></span></a>
671<ul class="sub-menu">
672	<li id="menu-item-1358" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-1358"><a href="https://trustoverip.org/events/upcoming-events/"><span class="menu-title-text">Upcoming Events</span></a></li>
673	<li id="menu-item-1618" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-1618"><a href="https://trustoverip.org/events/past-events/"><span class="menu-title-text">Past Event Highlights</span></a></li>
674</ul>
675</li>
676<li id="menu-item-551" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children nectar-regular-menu-item sf-with-ul menu-item-551"><a aria-haspopup="true" aria-expanded="false"><span class="menu-title-text">About Us</span><span class="sf-sub-indicator"><i class="fa fa-angle-down icon-in-menu" aria-hidden="true"></i></span></a>
677<ul class="sub-menu">
678	<li id="menu-item-535" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-535"><a href="https://trustoverip.org/about/about/"><span class="menu-title-text">About Us</span></a></li>
679	<li id="menu-item-536" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-536"><a href="https://trustoverip.org/about/contributors/"><span class="menu-title-text">Contributors</span></a></li>
680	<li id="menu-item-2459" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-2459"><a href="https://trustoverip.org/about/past-contributors-and-members/"><span class="menu-title-text">Past Contributors and Members</span></a></li>
681	<li id="menu-item-2378" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-2378"><a href="https://trustoverip.org/about/steering-committee/"><span class="menu-title-text">Steering Committee</span></a></li>
682	<li id="menu-item-1338" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-1338"><a href="https://trustoverip.org/our-work/working-group-activity/"><span class="menu-title-text">Working Group Activity</span></a></li>
683	<li id="menu-item-546" class="menu-item menu-item-type-post_type menu-item-object-page nectar-regular-menu-item menu-item-546"><a href="https://trustoverip.org/contact/"><span class="menu-title-text">Contact</span></a></li>
684</ul>
685</li>
686							</ul>
687													<ul class="buttons sf-menu" data-user-set-ocm="off"><li id="menu-item-1339" class="menu-item menu-item-type-post_type menu-item-object-page button_solid_color menu-item-1339"><a href="https://trustoverip.org/get-involved/membership/"><span class="menu-title-text">Join Us</span></a></li>
688<li id="search-btn"><div><a href="#search-box"><span class="icon-salient-search" aria-hidden="true"></span><span class="screen-reader-text">search</span></a></div> </li></ul>
689						
690					</nav>
691
692					<div class="logo-spacing" data-using-image="true"><img class="hidden-logo skip-lazy" alt="Trust Over IP" width="1200" height="420" src="https://trustoverip.org/wp-content/uploads/Trust_over_IP_color.png" /></div>
693				</div><!--/span_9-->
694
695				
696			</div><!--/row-->
697					</div><!--/container-->
698	</header>
699
700    </div>
701    
701<script type="text/javascript" nonce="37d9aaf48a91c10877e6f6f7877d0ecb">
702    // SIZE #header-space TO THE REAL HEADER HEIGHT IMMEDIATELY, RATHER THAN WAITING FOR THE
703    // window.load EVENT (SALIENT'S headerSpace() DOESN'T RUN UNTIL THEN). THE STATIC 90px
704    // DEFAULT IN style.css DOESN'T ACCOUNT FOR THE NOTIFICATIONS BAR, SO WITHOUT THIS THE
705    // PAGE VISIBLY JUMPS ONCE ALL ASSETS FINISH LOADING AND SALIENT CORRECTS IT LATE.
706    (function () {
707        var headerEl = document.getElementById('header-outer');
708        var spaceEl = document.getElementById('header-space');
709        if (headerEl && spaceEl) {
710            spaceEl.style.height = headerEl.clientHeight + 'px';
711        }
712    })();
713    </script>
713
714        <div id="ajax-content-wrap">
715
716<div class="container-wrap no-sidebar"
717     data-midnight="dark"
718     data-remove-post-date="0"
719     data-remove-post-author="0"
720     data-remove-post-comment-number="0">
721
722	<div class="container main-content" role="main">
723
724		
725	  <div class="row heading-title hentry" data-header-style="default">
726		<div class="col span_12 section-title blog-title">
727										  <h1 class="entry-title">ToIP Announces the First Implementers Draft of the Trust Spanning Protocol Specification</h1>
728
729						<div id="single-below-header" data-hide-on-mobile="false">
730				<span class="meta-author vcard author"><span class="fn"><span class="author-leading">By</span> <a href="https://trustoverip.org/author/trustoverip/" rel="author">trustoverip</a></span></span><span class="meta-date date updated">April 11, 2024</span><span class="meta-category"><a class="blog" href="https://trustoverip.org/category/blog/">Blog</a></span>			</div><!--/single-below-header-->
731					<div id="single-meta">
732
733				<div class="meta-comment-count">
734				  <a href="https://trustoverip.org/blog/2024/04/11/toip-announces-the-first-implementers-draft-of-the-trust-spanning-protocol-specification/#respond"><i class="icon-default-style steadysets-icon-chat-3"></i> No Comments</a>
735				</div>
736
737					
738			</div><!--/single-meta-->
739
740					</div><!--/section-title-->
741	  </div><!--/row-->
742
743	
744		<div class="row">
745
746			
747			<div class="post-area col standard-minimal span_12 col_last" role="main">
748
749				
750<article id="post-1964" class="post-1964 post type-post status-publish format-standard category-blog">
751  
752  <div class="inner-wrap">
753
754		<div class="post-content" data-hide-featured-media="0">
755      
756        <div class="content-inner">
757<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1000" height="667" src="https://trustoverip.org/wp-content/uploads/bridge-spanning-protocol-sm.jpg" alt="A handshake between two people in suits, with a cityscape and bridge silhouetted in pastel colours against the arms." class="wp-image-1974" srcset="https://trustoverip.org/wp-content/uploads/bridge-spanning-protocol-sm.jpg 1000w, https://trustoverip.org/wp-content/uploads/bridge-spanning-protocol-sm-300x200.jpg 300w, https://trustoverip.org/wp-content/uploads/bridge-spanning-protocol-sm-768x512.jpg 768w, https://trustoverip.org/wp-content/uploads/bridge-spanning-protocol-sm-900x600.jpg 900w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>
758
759
760
761<ul class="wp-block-list">
762<li><a href="#whyneed">Why do we need a Trust Spanning Protocol?</a></li>
763
764
765
766<li><a href="#whereoverview">Where can I get a high-level overview of TSP?</a></li>
767
768
769
770<li><a href="#whatcover">What does the Implementers Draft cover?</a></li>
771
772
773
774<li><a href="#howdiffer">How does TSP differ from other trust protocols?</a></li>
775
776
777
778<li><a href="#whatannounced">What implementation projects have been announced?</a></li>
779
780
781
782<li><a href="#whatfeedback">
782What kind of feedback are we seeking on this draft?</a></li>
783
784
785
786<li><a href="#howfeedback">How can you provide feedback?</a></li>
787</ul>
788
789
790
791<h2 class="wp-block-heading" id="whyneed">Why do we need a Trust Spanning Protocol?</h2>
792
793
794
795<p class="wp-block-paragraph">No one would question that the Internet has completely transformed the global information economy. It has become indispensable for connectivity and reliable content delivery. But as it has grown, so have the threats against it and the vexing challenges in deciding what to trust. </p>
796
797
798
799<p class="wp-block-paragraph">Now, AI is pushing those concerns into overdrive. A <a href="https://www.cyberark.com/press/cyberark-establishes-artificial-intelligence-center-of-excellence-to-combat-attacker-innovation-with-identity-security-innovation/#:~:text=According%20to%20the%20recently%2Dpublished,cited%20as%20the%20%231%20concern.">2023 study by CyberArk</a> found that 93% of security professionals expect AI-enabled threats to affect their organization in 2023—with AI-powered malware cited as the #1 concern. No less an industry luminary than Marc Andreessen recently said that <a href="https://twitter.com/tsarnick/status/1775332956447674633">the war against detecting AI fakes was unwinnable</a>—our only solution was to find a way to “invert the problem” by being able to prove <a href="https://contentauthenticity.org/">content authenticity</a>.</p>
800
801
802
803<p class="wp-block-paragraph">Why, after 30 years of steadily compounding security issues, does industry not yet have a fix? Why, with technologies like <a href="https://www.icann.org/resources/pages/dnssec-what-is-it-why-important-2019-03-05-en">DNSSEC</a> and <a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">TLS</a>, and industry bodies like <a href="https://www.ietf.org/">IETF</a> and the <a href="https://en.wikipedia.org/wiki/CA/Browser_Forum">CA/Browser Forum</a>, do we still have daily headlines about data breaches, ransomware attacks, identity theft, and malware infestations? Why, with the explosive interest in <a href="https://en.wikipedia.org/wiki/Generative_artificial_intelligence">generative AI</a>, are many experts more worried about it being used to attack us than to protect us?</p>
804
805
806
807<p class="wp-block-paragraph">The answer is the reason the <a href="https://trustoverip.org/">Trust Over IP (ToIP) Foundation</a> was founded four years ago. In short, <em>authenticity, confidentiality, and metadata privacy features were never built into the core fabric of the Internet</em>. To solve the root of this problem and not the symptoms, we need a next-generation trust layer on top of the existing Internet.</p>
808
809
810
811<p class="wp-block-paragraph">The heart of this layer is <strong>a protocol that is to digital trust what the Internet Protocol (IP) is to digital data</strong>. That is the <a href="https://trustoverip.github.io/tswg-tsp-specification">ToIP Trust Spanning Protocol</a> (TSP).</p>
812
813
814
815<h2 class="wp-block-heading" id="whereoverview">Where can I get a high-level overview of TSP?</h2>
816
817
818
819<p class="wp-block-paragraph">First, start with <a href="https://trustoverip.org/blog/2023/01/05/the-toip-trust-spanning-protocol/">this blog post</a> we published in January 2023 when we launched the ToIP Trust Spanning Protocol Task Force (TSPTF). It explains the overall purpose of the TSP and where it fits in the ToIP stack.</p>
820
821
822
823<p class="wp-block-paragraph">Second, read the <a href="https://trustoverip.org/blog/2023/08/31/mid-year-progress-report-on-the-toip-trust-spanning-protocol/">Mid-Year Progress Report on the ToIP Trust Spanning Protocol</a>, published last August 2023 to summarize the seven pillars of the TSP design. With the exception of some terminology evolution, these seven pillars have not changed as we worked through multiple stages of Working Drafts over the past seven months.</p>
824
825
826
827<p class="wp-block-paragraph">Today we are pleased to announce the release of the first <a href="https://trustoverip.github.io/tswg-tsp-specification"><strong>Implementers Draft</strong></a>.</p>
828
829
830
831<h2 class="wp-block-heading" id="whatcover">What does the Implementers Draft cover?</h2>
832
833
834
835<p class="wp-block-paragraph">This table summarizes the 10 major sections of the specification:</p>
836
837
838
839<figure class="wp-block-table"><table><tbody><tr><td><strong>Verifiable Identifiers (VIDs)</strong></td><td>VIDs are the first of the <a href="https://trustoverip.org/blog/2023/08/31/mid-year-progress-report-on-the-toip-trust-spanning-protocol/">seven pillars</a> — cryptographically-verifiable identifiers that provide technical trust in the TSP. <strong>Covers</strong>: why they are necessary, how they provide access to public keys and ToIP endpoint addresses, how they are verified, and how keys can be rotated.</td></tr><tr><td><strong>Messages</strong></td><td>
839TSP is a message-based asynchronous communication protocol. <strong>Covers</strong>: message envelopes, payloads (confidential, non-confidential, headers), signatures, relationship setup and out-of-band introductions.</td></tr><tr><td><strong>Nested Messages</strong></td><td>TSP messages can be nested one or two layers to achieve metadata privacy. <strong>Covers</strong>: payload nesting, nested relationship VIDs.</td></tr><tr><td><strong>Messages Routed through Intermediaries</strong></td><td>TSP messages can be routed through intermediaries for several reasons, e.g., asynchronous delivery, reliability, and performance. However the primary focus is metadata privacy protection. <strong>Covers</strong>: message routing, direct neighbor relationships, endpoint-to-endpoint (“tunneled”) messages, private VIDs, single intermediaries, two-or-more intermediaries.</td></tr><tr><td><strong>Multi-Recipient Communications</strong></td><td>TSP messages may be sent to multiple recipients. <strong>Covers</strong>: multi-recipient lists and anycast intermediaries.</td></tr><tr><td><strong>Control Payload Fields</strong></td><td>TSP messages can be multi-purpose, so rather than dedicated <em>control messages</em>, the specification defines <em>control payloads</em>. <strong>Covers</strong>: relationship formation (parallel, nested, third-party introductions), relationship events (key updates, routing info, and relationship cancellation).</td></tr><tr><td><strong>Cryptographic Algorithms</strong></td><td>The authenticity and confidentiality properties of TSP relies on public/private key cryptography. <strong>Covers</strong>: public key signatures, public key authenticated encryption, encryption and decryption primitives, Hybrid Public Key Encryption (HPKE), Libsodium Sealed Box.</td></tr><tr><td><strong>Serialization and Encoding</strong></td><td>TSP uses <a href="https://trustoverip.github.io/tswg-cesr-specification/">Composable Event Streaming Representation</a> (CESR) for message serialization and encoding. CESR supports popular data encoding formats including JSON, CBOR, MsgPak, and others. <strong>Covers</strong>: envelope encoding, payload encoding (non-confidential, confidential, nested), signature encoding.</td></tr><tr><td><strong>Transports</strong></td><td>TSP’s authenticity, confidentiality and metadata privacy properties are designed to be independent of the choice of transport protocol. <strong>Covers</strong>: transport service interface, transport mechanism examples.</td></tr><tr><td><strong>Appendix A: </strong><strong><br></strong><strong>Test Vectors</strong></td><td>(<em>Still being completed</em>) Test vectors for common use cases. <strong>Covers</strong>: direct mode messages, direct mode nested messages, routed model messages.</td></tr></tbody></table></figure>
840
841
842
843<h2 class="wp-block-heading" id="howdiffer">How does TSP differ from other trust protocols?</h2>
844
845
846
847<p class="wp-block-paragraph">Proposing a fundamental new Internet-scale protocol for digital trust is an ambitious undertaking. Why did the ToIP Foundation take this path? Let’s start by looking at related efforts in this area.</p>
848
849
850
851<h3 class="wp-block-heading">Related protocols</h3>
852
853
854
855<p class="wp-block-paragraph">This table summaries other well-known protocols that address various facets of digital trust:</p>
856
857
858
859<figure class="wp-block-table"><table><tbody><tr><td><strong>OpenID Connect (OIDC)</strong></td><td>An authentication layer on top of the <a href="https://en.wikipedia.org/wiki/OAuth#OAuth_2.0">OAuth 2.0</a> authorization framework specified by the <a href="https://openid.net/foundation/">OpenID Foundation</a> as a RESTful HTTP API using JSON as a data format. Supports basic user profile information access; optionalYeahHighlight features include encryption of identity data, discovery of OpenID providers, and session management.</td></tr><tr><td><strong>OpenID for Verifiable Credentials (OID4VC)</strong></td><td>A family of protocols from the <a href="https://openid.net/wg/connect/">OpenID Connect Working Group</a> built on top of OIDC for issuance (OID4VCI) and presentation (OID4VP) of verifiable digital credentials, plus a wallet-based user authentication protocol (SIOP).</td></tr><tr><td><strong>DIDComm</strong></td><td>Specified by the <a href="https://identity.foundation/working-groups/did-comm.html">DIDComm Working Group</a> of the <a href="https://identity.foundation/">Decentralized Identity Foundation</a> (DIF), DIDComm is a peer-to-peer secure messaging protocol in which the endpoints are specified by <a href="https://www.w3.org/TR/did-core/">DIDs</a> (decentralized identifiers).</td></tr><tr><td><strong>TLS (Transport Layer Security)</strong></td><td>A cryptographic protocol from the IETF best known for enabling secure <a href="https://en.wikipedia.org/wiki/HTTPS">HTTPS</a> browser connections; also widely used in applications such as email, instant messaging, and voice over IP. Provides security, confidentiality, integrity, and authenticity through the use of X.509 digital certificates.</td></tr><tr><td><strong>MLS (Message Layer Security)</strong></td><td>Specified by the <a href="https://datatracker.ietf.org/wg/mls/about/">MLS Working Group</a> of the <a href="https://en.wikipedia.org/wiki/Internet_Engineering_Task_Force">IETF</a>
859, MLS is a security layer for end-to-end encrypted messages in arbitrarily sized groups. Its security properties include message confidentiality, message integrity and authentication, membership authentication, asynchronicity, forward secrecy, post-compromise security, and scalability.</td></tr><tr><td><strong>RCS (Rich Communications Services)</strong></td><td>A text-based mobile messaging protocol specified by <a href="https://en.wikipedia.org/wiki/GSMA">GSMA</a> to replace SMS messages with a richer feature set including in-call multimedia. RCS does not natively support end-to-end encryption; Google added it using the Signal Protocol in their own implementation. Apple has said it will support RCS once GSMA standardizes end-to-end encryption.</td></tr><tr><td><strong>Signal Protocol</strong></td><td>A non-federated cryptographic protocol specified by the <a href="https://signalfoundation.org/">Signal Foundation</a> that provides end-to-end encryption for voice and instant messaging conversations. The protocol combines the Double Ratchet Algorithm, prekeys, and a triple Elliptic-curve Diffie–Hellman (3-DH) handshake.</td></tr><tr><td><strong>Matrix Protocol</strong></td><td>An application layer communication protocol for federated real-time communication specified by the <a href="https://matrix.org/about/">Matrix Foundation</a>, it provides HTTP APIs for securely distributing and persisting messages in JSON format over an open federation of servers. It can integrate with standard web services via WebRTC to facilitate browser-to-browser applications.</td></tr><tr><td><strong>DNSSEC</strong></td><td>A suite of extension specifications from the IETF for securing data exchanged in the <a href="https://en.wikipedia.org/wiki/Domain_Name_System">Domain Name System</a> (DNS). The protocol provides cryptographic authentication of data, authenticated denial of existence, and data integrity, but not availability or confidentiality.</td></tr><tr><td><strong>ISO/IEC 14443-4:2018</strong></td><td>A half-duplex block transmission protocol designed for a contactless environment, it defines the activation and deactivation sequence of the protocol. It is intended for use with other parts of ISO/IEC 14443 and is applicable to proximity cards or objects of Type A and Type B.</td></tr></tbody></table></figure>
860
861
862
863<h3 class="wp-block-heading">Related cryptographic data structures</h3>
864
865
866
867<p class="wp-block-paragraph">Protocols are not the only ingredient required for Internet-scale digital trust. This table summarizes some of the standard cryptographic data structures that have been developed:</p>
868
869
870
871<figure class="wp-block-table"><table><tbody><tr><td><strong>X.509 digital certificates</strong></td><td>An ITU standard defining the format of the <a href="https://en.wikipedia.org/wiki/Public_key_certificate">public key certificates</a> used in many Internet protocols, including TLS, as well as&nbsp; digital signatures. An X.509 certificate binds an identity (a hostname, or an organization, or an individual) to a public key using a digital signature. A certificate is signed either by a certificate authority (CA) or self-signed. X.509 also defines <a href="https://en.wikipedia.org/wiki/Certificate_revocation_list">certificate revocation lists</a> and a <a href="https://en.wikipedia.org/wiki/Certification_path_validation_algorithm">certification path validation algorithm</a>.</td></tr><tr><td><strong>Encrypted/signed PDF files</strong></td><td>Portable Document Format, originally developed by Adobe, became an ISO standard in 2008. A PDF file may be encrypted; PDF 2.0 defines 256-bit AES encryption as the standard but also defines how third parties can define their own encryption systems for PDF. ISO 32000-2 defines how PDF files may be digitally signed for secure authentication.</td></tr><tr><td><strong>Verifiable digital credentials</strong></td><td>With the emergence of digital wallets, multiple formats for cryptographically verifiable digital credentials have been developed, including the <a href="https://www.w3.org/TR/vc-data-model-2.0/">W3C Verifiable Credentials Data Model</a>; <a href="https://www.iso.org/obp/ui/en/#!iso:std:69084:en">ISO mDL/mDOC</a>; <a href="https://datatracker.ietf.org/doc/draft-ietf-oauth-selective-disclosure-jwt/">IETF SD-JWTs</a>; <a href="https://www.hyperledger.org/projects/anoncreds">Hyperledger AnonCreds</a>; and <a href="https://trustoverip.org/blog/2024/03/21/authentic-chained-data-containers-acdc-task-force-announces-public-review/">ToIP Authentic Chained Data Container (ACDC)</a>.</td></tr><tr><td><strong>
871C2PA content credentials</strong></td><td>The <a href="https://c2pa.org/">C2PA</a> standards define a model for binding cryptographically verifiable provenance information to digital media content together with a model for evaluating the trustworthiness of that information.</td></tr></tbody></table></figure>
872
873
874
875<h3 class="wp-block-heading">How and why is TSP different?</h3>
876
877
878
879<p class="wp-block-paragraph">As the sections above show, many thousands of person-hours have been invested in protocols and cryptographic data structures designed to address the Internet’s multitude of security, confidentiality, and privacy issues. So why have the members of the ToIP Foundation spent four years developing TSP?</p>
880
881
882
883<p class="wp-block-paragraph">The fundamental reasons are summarized in this table:</p>
884
885
886
887<figure class="wp-block-table"><table><tbody><tr><td><strong>Minimalist design as a spanning layer for higher-layer protocols</strong></td><td>The single most important design goal for the TSP—and the biggest differentiator from the protocols listed above (with the possible exception of DIDComm)—is the critical role of a <a href="http://web.archive.org/web/20050415042854/http://www.csd.uch.gr/~hy490-05/lectures/Clark_interoperation.htm">spanning layer</a> in a protocol stack. The reasons it must be “as simple as possible but no simpler” is explained at length in Principle #3 of the <a href="https://trustoverip.org/wp-content/uploads/Design-Principles-for-the-ToIP-Stack-V1.0-2022-11-17.pdf">Design Principles for the ToIP Stack</a>. The TSP does not include many of the features of the protocols above precisely because it is designed so those features can be <em>provided in higher-level protocols</em>. The benefit is that all of those higher-level protocols can be <em>much simpler and more future-proof</em> because they automatically inherit all the technical trust features achieved at the TSP layer.</td></tr><tr><td><strong>Decentralized peer-to-peer architecture</strong></td><td>By building on HTTP and RESTful APIs, the OpenID family of protocols are inherently Web-centric (client/server). The TSP does not make that architectural assumption. Like the IP protocol, it can work between any two peers across any kind of network or software architecture.</td></tr><tr><td><strong>VIDs &amp; DIDs</strong></td><td>Like DIDComm, all TSP endpoints use cryptographically verifiable identifiers (VIDs) such as those defined by the <a href="https://www.w3.org/TR/did-core/">W3C Decentralized Identifiers</a> (DIDs) specification. VIDs not only support full decentralization, but they provide portability and cryptographic agility for lifetime relationship management.</td></tr><tr><td><strong>Public Key Authenticated Encryption and Signature</strong></td><td>TSP combines modern Public Key Authenticated Encryption and Public Key Signature to provide the strongest protection against both key compromise impersonation and sender impersonation. This is achieved by using either IETF RFC9180 <a href="https://datatracker.ietf.org/doc/rfc9180/">HPKE</a> (Hypbrid Public Key Encryption) defined Auth Mode primitives, or HPKE Base Mode or Libsodium Sealed Box primitives enhanced with an <a href="https://eprint.iacr.org/2001/079">ESSR</a> (Encrypt Sender Sign Receiver) pattern.</td></tr><tr><td><strong>Payload agility</strong></td><td>TSP uses the <a href="https://trustoverip.github.io/tswg-cesr-specification/">CESR</a> text-binary dual encoding format that supports composability of both text and binary primitives—including JSON, CBOR, and MsgPak—in the same message.</td></tr><tr><td><strong>Cryptographic agility</strong></td><td>Another key feature of <a href="https://trustoverip.github.io/tswg-cesr-specification/">CESR</a> is code tables for all types of cryptographic primitives. For example, it can transmit any of the cryptographic data structures listed above. This enables TSP ecosystems to standardize on precise signature and encryption algorithms yet still evolve them over time.</td></tr><tr><td><strong>Transport independence</strong></td><td>Although the name “Trust Over IP” suggests a dependence on the TCP/IP stack for transport, in fact a core design goal of TSP is to provide end-to-e
887nd authenticity, confidentiality, and metadata privacy entirely independent of the underlying transport protocol.</td></tr></tbody></table></figure>
888
889
890
891<h2 class="wp-block-heading" id="whatannounced">What implementation projects have been announced?</h2>
892
893
894
895<p class="wp-block-paragraph">In parallel with the first Implementers Draft, at next week’s <a href="https://internetidentityworkshop.com/">Internet Identity Workshop</a> #38 we will be announcing the first two TSP implementation projects—each one led by one of the primary authors of the TSP specification:</p>
896
897
898
899<ul class="wp-block-list">
900<li>A <strong>Rust</strong> open source implementation led by co-author <strong>Wenjing Chu</strong> is being proposed as a new project at the <a href="https://openwallet.foundation/">OpenWallet Foundation</a> (OWF) sponsored by OWF Premier members Futurewei, Gen, and Accenture.</li>
901
902
903
904<li>A <strong>Python</strong> open source implementation is being developed by co-author <strong>Sam Smith</strong> and his colleagues at the <a href="https://github.com/WebOfTrust">Web of Trust GitHub community project</a>.</li>
905</ul>
906
907
908
909<p class="wp-block-paragraph">If you are interested in contributing to either of these projects or starting your own, we welcome your collaboration. Just contact us via the <a href="https://trustoverip.org/contact/">ToIP contact page</a> or <a href="https://github.com/trustoverip/tswg-tsp-specification?tab=readme-ov-file">GitHub</a>.</p>
910
911
912
913<h2 class="wp-block-heading" id="whatfeedback">
913What kind of feedback are we seeking on this draft?</h2>
914
915
916
917<p class="wp-block-paragraph">As always, we would like feedback on the usual questions about any new protocol specification:</p>
918
919
920
921<ul class="wp-block-list">
922<li>Is the spec clear and understandable?&nbsp;</li>
923
924
925
926<li>Are there any missing sections?&nbsp;</li>
927
928
929
930<li>Are there places where more examples or illustrations would be helpful?</li>
931
932
933
934<li>Are there specific test vectors you would like to see added?</li>
935</ul>
936
937
938
939<p class="wp-block-paragraph">In addition, we are specifically looking for your feedback in the following areas:</p>
940
941
942
943<ol class="wp-block-list">
944<li>How would you imagine using the TSP? How can it enhance what you already have? What types of trust task protocols are you most interested in layering over the TSP?</li>
945
946
947
948<li>Does the TSP provide the baseline capabilities you need to support your planned trust task protocol(s)?</li>
949
950
951
952<li>Does the TSP enable your solution to be more decentralized?</li>
953
954
955
956<li>What types of VIDs do you plan to implement support for?</li>
957
958
959
960<li>What types of transport protocols do you intend to bind to?</li>
961
962
963
964<li>What cryptographic algorithms do you want or need to use?</li>
965
966
967
968<li>What problems are you trying to solve in your tech stack that are not addressed by existing solutions and can or should be addressed by TSP?</li>
969
970
971
972<li>Are there other protocols in development that we are not aware of that may conflict or complement TSP?</li>
973</ol>
974
975
976
977<h2 class="wp-block-heading" id="howfeedback">How can you provide feedback?</h2>
978
979
980
981<p class="wp-block-paragraph">To review the ​​specification:</p>
982
983
984
985<ul class="wp-block-list">
986<li>Github Pages version: <a href="https://trustoverip.github.io/tswg-tsp-specification">https://trustoverip.github.io/tswg-tsp-specification</a>&nbsp;</li>
987
988
989
990<li>Markdown version: <a href="https://github.com/trustoverip/tswg-tsp-specification">https://github.com/trustoverip/tswg-tsp-specification</a>&nbsp;</li>
991</ul>
992
993
994
995<p class="wp-block-paragraph">To make a comment, report a bug, or file an issue, please follow the <a href="https://trustoverip.org/our-work/public-review-process/">ToIP Public Review Process</a> on GitHub:</p>
996
997
998
999<ul class="wp-block-list">
1000<li>Bugs/Issues: <a href="https://github.com/trustoverip/tswg-tsp-specification/issues">https://github.com/trustoverip/tswg-tsp-specification/issues</a></li>
1001
1002
1003
1004<li>Discussion: <a href="https://github.com/trustoverip/tswg-tsp-specification/discussions">https://github.com/trustoverip/tswg-tsp-specification/discussions</a></li>
1005</ul>
1006</div>        
1007      </div><!--/post-content-->
1008      
1009    </div><!--/inner-wrap-->
1010    
1011</article>
1012			</div><!--/post-area-->
1013
1014			
1015		</div><!--/row-->
1016
1017		<div class="row">
1018
1019			
1020			<div class="comments-section"
1021			     data-author-bio="false">
1022							</div>
1023
1024		</div><!--/row-->
1025
1026	</div><!--/container main-content-->
1027
1028	
1029</div><!--/container-wrap-->
1030
1031<div class="nectar-social fixed" data-position="" data-rm-love="0" data-color-override="override"><a href="#"><span class="screen-reader-text">Share</span><i class="icon-default-style steadysets-icon-share"></i></a><div class="nectar-social-inner"><a class='facebook-share nectar-sharing' href='#' title='Share this'> <i class='fa fa-facebook'></i> <span class='social-text'>Share</span> </a><a class='twitter-share nectar-sharing' href='#' title='Share this'> <i class='fa icon-salient-x-twitter'></i> <span class='social-text'>Share</span> </a><a class='linkedin-share nectar-sharing' href='#' title='Share this'> <i class='fa fa-linkedin'></i> <span class='social-text'>Share</span> </a><a class='pinterest-share nectar-sharing' href='#' title='Pin this'> <i class='fa fa-pinterest'></i> <span class='social-text'>Pin</span> </a></div></div>
1032<div id="footer-outer" data-midnight="light" data-cols="4" data-custom-color="false" data-disable-copyright="false" data-matching-section-color="false" data-copyright-line="false" data-using-bg-img="false" data-bg-img-overlay="0.8" data-full-width="false" data-using-widget-area="true" data-link-hover="default"role="contentinfo">
1033	
1034		
1035	<div id="footer-widgets" data-has-widgets="false" data-cols="4">
1036		
1037		<div class="container">
1038			
1039						
1040			<div class="row">
1041				
1042								
1043				<div class="col span_3">
1044												<div class="widget">			
1045							</div>
1046											</div>
1047					
1048											
1049						<div class="col span_3">
1050																<div class="widget">			
1051									</div>
1052																
1053							</div>
1054							
1055												
1056						
1057													<div class="col span_3">
1058																		<div class="widget">			
1059										</div>		   
1060																		
1061								</div>
1062														
1063															<div class="col span_3">
1064																				<div class="widget">		
1065											</div>
1066																				
1067									</div>
1068																
1069							</div>
1070													</div><!--/container-->
1071					</div><!--/footer-widgets-->
1072					
1073					
1074  <div class="row" id="copyright" data-layout="default">
1075
1076	<div class="container">
1077
1078				<div class="col span_5">
1079
1080			<p> Copyright © 2022 Joint Development Foundation Projects, LLC, Trust over IP Foundation Series <a href="https://jdfprojects.org/toip/">Terms of Use, Privacy Policy and Cookie Policy</a>. The Joint Development Foundation Projects, LLC is an affiliate of the Linux Foundation.</p>
1081		</div><!--/span_5-->
1082		
1083	  <div class="col span_7 col_last">
1084      <ul class="social">
1085        <li><a target="_blank" rel="noopener" href="https://twitter.com/trustoverip"><span class="screen-reader-text">twitter</span><i class="fa fa-twitter" aria-hidden="true"></i></a></li><li><a target="_blank" rel="noopener" href="https://www.linkedin.com/company/trust-over-ip-foundation"><span class="screen-reader-text">linkedin</span><i class="fa fa-linkedin" aria-hidden="true"></i></a></li><li><a target="_blank" rel="noopener" href="https://www.youtube.com/channel/UC7gD2mHX_AXzkTHelj2nYEA"><span class="screen-reader-text">youtube</span><i class="fa fa-youtube-play" aria-hidden="true"></i></a></li>      </ul>
1086	  </div><!--/span_7-->
1087
1088	  
1089	</div><!--/container-->
1090  </div><!--/row-->
1091		
1092</div><!--/footer-outer-->
1093
1094
1095	<div id="slide-out-widget-area-bg" class="slide-out-from-right dark">
1096				</div>
1097
1098		<div id="slide-out-widget-area" role="dialog" aria-modal="true" aria-label="Off Canvas Menu" class="slide-out-from-right" data-dropdown-func="separate-dropdown-parent-link" data-back-txt="Back">
1099
1100			<div class="inner-wrap">
1101			<div class="inner" data-prepend-menu-mobile="false">
1102
1103				<a class="slide_out_area_close" href="#"><span class="screen-reader-text">Close Menu</span>
1104					<span class="icon-salient-x icon-default-style"></span>				</a>
1105
1106
1107									<div class="off-canvas-menu-container mobile-only" role="navigation">
1108
1109						<div class="secondary-header-text"><a href="http://lf-toip.atlassian.net/">Go to Members Wiki »</a></div>
1110						<ul class="menu">
1111							<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-552"><a aria-haspopup="true" aria-expanded="false">Why ToIP?</a>
1112<ul class="sub-menu">
1113	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-539"><a href="https://trustoverip.org/why-toip/overview/">Overview</a></li>
1114	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-540"><a href="https://trustoverip.org/why-toip/benefits/">Benefits</a></li>
1115</ul>
1116</li>
1117<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2080"><a href="https://trustoverip.org/toip-model/">The ToIP Model</a></li>
1118<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-553"><a aria-haspopup="true" aria-expanded="false">Our Work</a>
1119<ul class="sub-menu">
1120	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2522"><a href="https://trustoverip.org/bite-size-trust/">Bite-Size Trust</a></li>
1121	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-556"><a href="https://trustoverip.org/our-work/deliverables/">Deliverables</a></li>
1122	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1590"><a href="https://trustoverip.org/our-work/technical-architecture/">Technology Architecture</a></li>
1123	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1589"><a href="https://trustoverip.org/our-work/evolution-of-the-toip-stack/">Evolution of the ToIP Stack</a></li>
1124	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-633"><a href="https://trustoverip.org/get-involved/working-groups/">Working Groups</a></li>
1125	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1333"><a href="https://trustoverip.org/our-work/design-principles/">Design Principles</a></li>
1126	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-800"><a href="https://trustoverip.org/get-involved/good-health-pass-implementation/">Good Health Pass: An Ecosystem Story</a></li>
1127</ul>
1128</li>
1129<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-537"><a href="https://trustoverip.org/about/news/">Blog</a></li>
1130<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-1619"><a aria-haspopup="true" aria-expanded="false">Events</a>
1131<ul class="sub-menu">
1132	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1358"><a href="https://trustoverip.org/events/upcoming-events/">Upcoming Events</a></li>
1133	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1618"><a href="https://trustoverip.org/events/past-events/">Past Event Highlights</a></li>
1134</ul>
1135</li>
1136<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-551"><a aria-haspopup="true" aria-expanded="false">About Us</a>
1137<ul class="sub-menu">
1138	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-535"><a href="https://trustoverip.org/about/about/">About Us</a></li>
1139	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-536"><a href="https://trustoverip.org/about/contributors/">Contributors</a></li>
1140	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2459"><a href="https://trustoverip.org/about/past-contributors-and-members/">Past Contributors and Members</a></li>
1141	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2378"><a href="https://trustoverip.org/about/steering-committee/">Steering Committee</a></li>
1142	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1338"><a href="https://trustoverip.org/our-work/working-group-activity/">Working Group Activity</a></li>
1143	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-546"><a href="https://trustoverip.org/contact/">Contact</a></li>
1144</ul>
1145</li>
1146<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1339"><a href="https://trustoverip.org/get-involved/membership/">Join Us</a></li>
1147
1148						</ul>
1149
1150						<ul class="menu secondary-header-items">
1151													</ul>
1152					</div>
1153					
1154				</div>
1155
1156				<div class="bottom-meta-wrap"><ul class="off-canvas-social-links mobile-only"><li><a target="_blank" rel="noopener" href="https://twitter.com/trustoverip"><span class="screen-reader-text">twitter</span><i class="fa fa-twitter" aria-hidden="true"></i> </a></li><li><a target="_blank" rel="noopener" href="https://www.linkedin.com/company/trust-over-ip-foundation"><span class="screen-reader-text">linkedin</span><i class="fa fa-linkedin" aria-hidden="true"></i> </a></li></ul></div><!--/bottom-meta-wrap--></div> <!--/inner-wrap-->
1157				</div>
1158		
1159</div> <!--/ajax-content-wrap-->
1160
1161	<a id="to-top" aria-label="Back to top" role="button" href="#" class="mobile-disabled"><i role="presentation" class="fa fa-angle-up"></i></a>
1162	
1162<script type="speculationrules">
1163{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/salient-child/*","/wp-content/themes/salient/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
1164</script>
1164
1165
1166<!-- GTM Container placement set to footer -->
1167<!-- Google Tag Manager (noscript) -->
1168				<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M836LKM" height="0" width="0" style="display:none;visibility:hidden" aria-hidden="true"></iframe></noscript>
1169<!-- End Google Tag Manager (noscript) --><a href="#" class="cookie-settings-link" aria-label="Cookie Settings"><?xml version="1.0" encoding="UTF-8"?>
1170<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 400 400">
1171  <!-- Generator: Adobe Illustrator 30.8.0, SVG Export Plug-In . SVG Version: 2.1.4 Build 114)  -->
1172  <defs>
1173    <style>
1174      .st0 {
1175        fill: #fff;
1176        stroke: #d5d5d5;
1177        stroke-miterlimit: 10;
1178      }
1179    </style>
1180  </defs>
1181  <circle class="st0" cx="200" cy="200" r="196.5"/>
1182  <path d="M354.5,169.9c-1.9.5-3.8.7-5.8.7-12.8,0-23.2-10.4-23.2-23.2s.3-4,.8-5.9c-5.6,3.7-12.2,5.9-19.5,5.9-19.3,0-34.9-15.6-34.9-34.9h0c-.9,0-1.8,0-2.8,0-24.3,0-43.9-19.7-43.9-43.9s1.8-14.2,4.9-20.2c-8.6-1.5-17.5-2.3-26.6-2.3-85.1,0-154,68.9-154,154s68.9,154,154,154,154-68.9,154-154-1-20.4-3-30.2ZM126.1,286.5c-11.2,0-20.3-9.1-20.3-20.3s9.1-20.3,20.3-20.3,20.3,9.1,20.3,20.3-9.1,20.3-20.3,20.3ZM129.9,193.1c-12.2,0-22.1-9.9-22.1-22.1s9.9-22.1,22.1-22.1,22.1,9.9,22.1,22.1-9.9,22.1-22.1,22.1ZM152.8,105.5c-7.8,0-14.1-6.3-14.1-14.1s6.3-14.1,14.1-14.1,14.1,6.3,14.1,14.1-6.3,14.1-14.1,14.1ZM191.3,135.1c0-9.1,7.4-16.5,16.5-16.5s16.5,7.4,16.5,16.5-7.4,16.5-16.5,16.5-16.5-7.4-16.5-16.5ZM225.1,308.8c-7.8,0-14.1-6.3-14.1-14.1s6.3-14.1,14.1-14.1,14.1,6.3,14.1,14.1-6.3,14.1-14.1,14.1ZM225.1,240.8c-10.5,0-19-8.5-19-19s8.5-19,19-19,19,8.5,19,19-8.5,19-19,19ZM295.6,259.3c-9.8,0-17.8-8-17.8-17.8s8-17.8,17.8-17.8,17.8,8,17.8,17.8-8,17.8-17.8,17.8Z"/>
1183</svg></a>
1183<script id="salient-social-js-extra">
1184var nectarLove = {"ajaxurl":"https://trustoverip.org/wp-admin/admin-ajax.php","postID":"1964","rooturl":"https://trustoverip.org","loveNonce":"15df760ed5"};
1185//# sourceURL=salient-social-js-extra
1186</script>
vendor: 1 bytes, line 1186
1186
1187<script id="salient-social-js" src="https://trustoverip.org/wp-content/plugins/salient-social/js/salient-social.js?ver=1.2.6"></script>
vendor: 1 bytes, line 1187
1187
1188<script id="salient-child-featherlight-script-js" src="https://trustoverip.org/wp-content/themes/salient-child/vc-addons/js/featherlight.js?ver=3.6.1"></script>
vendor: 1 bytes, line 1188
1188
1189<script id="youtube-playlist-js" src="https://trustoverip.org/wp-content/themes/salient-child/vc-addons/js/youtube-playlist.js?ver=1.0.0"></script>
vendor: 1 bytes, line 1189
1189
1190<script id="cookie-settings-script-js" src="https://trustoverip.org/wp-content/themes/salient-child/includes/cookie-settings/cookie-settings.js?ver=18.3.0"></script>
vendor: 1 bytes, line 1190
1190
1191<script id="salient-child-javascript-js" src="https://trustoverip.org/wp-content/themes/salient-child/javascript.js?ver=3.6.1"></script>
vendor: 1 bytes, line 1191
1191
1192<script id="jquery-easing-js" src="https://trustoverip.org/wp-content/themes/salient/js/build/third-party/jquery.easing.min.js?ver=1.3"></script>
vendor: 1 bytes, line 1192
1192
1193<script id="nectar_priority-js" src="https://trustoverip.org/wp-content/themes/salient/js/build/priority.js?ver=18.3.0"></script>
vendor: 1 bytes, line 1193
1193
1194<script id="nectar-transit-js" src="https://trustoverip.org/wp-content/themes/salient/js/build/third-party/transit.min.js?ver=0.9.9"></script>
vendor: 1 bytes, line 1194
1194
1195<script id="nectar-waypoints-js" src="https://trustoverip.org/wp-content/themes/salient/js/build/third-party/waypoints.js?ver=4.0.2"></script>
vendor: 1 bytes, line 1195
1195
1196<script id="imagesLoaded-js" src="https://trustoverip.org/wp-content/plugins/salient-portfolio/js/third-party/imagesLoaded.min.js?ver=4.1.4"></script>
vendor: 1 bytes, line 1196
1196
1197<script id="hoverintent-js" src="https://trustoverip.org/wp-content/themes/salient/js/build/third-party/hoverintent.min.js?ver=1.9"></script>
vendor: 1 bytes, line 1197
1197
1198<script id="magnific-js" src="https://trustoverip.org/wp-content/themes/salient/js/build/third-party/magnific.js?ver=7.0.1"></script>
vendor: 1 bytes, line 1198
1198
1199<script id="anime-js" src="https://trustoverip.org/wp-content/themes/salient/js/build/third-party/anime.min.js?ver=4.5.1"></script>
vendor: 1 bytes, line 1199
1199
1200<script id="superfish-js" src="https://trustoverip.org/wp-content/themes/salient/js/build/third-party/superfish.js?ver=1.5.8"></script>
vendor: 1 bytes, line 1200
1200
1201<script id="nectar-frontend-js-extra">
1202var nectarLove = {"ajaxurl":"https://trustoverip.org/wp-admin/admin-ajax.php","postID":"1964","rooturl":"https://trustoverip.org","disqusComments":"false","loveNonce":"15df760ed5","mapApiKey":""};
1203var nectarOptions = {"delay_js":"false","smooth_scroll":"false","smooth_scroll_strength":"50","quick_search":"false","react_compat":"disabled","header_entrance":"false","body_border_func":"default","disable_box_roll_mobile":"false","body_border_mobile":"0","dropdown_hover_intent":"default","simplify_ocm_mobile":"0","mobile_header_format":"default","ocm_btn_position":"default","left_header_dropdown_func":"default","ajax_add_to_cart":"0","ocm_remove_ext_menu_items":"remove_images","woo_product_filter_toggle":"0","woo_sidebar_toggles":"true","woo_sticky_sidebar":"0","woo_minimal_product_hover":"default","woo_minimal_product_effect":"default","woo_related_upsell_carousel":"false","woo_product_variable_select":"default","woo_using_cart_addons":"false","view_transitions_effect":""};
1204var nectar_front_i18n = {"menu":"Menu","next":"Next","previous":"Previous","close":"Close","slide_of":"Slide %1$s of %2$s","slide":"slide"};
1205//# sourceURL=nectar-frontend-js-extra
1206</script>
vendor: 1 bytes, line 1206
1206
1207<script id="nectar-frontend-js" src="https://trustoverip.org/wp-content/themes/salient/js/build/init.js?ver=18.3.0"></script>
vendor: 1 bytes, line 1207
1207
1208<script id="touchswipe-js" src="https://trustoverip.org/wp-content/plugins/salient-core/js/third-party/touchswipe.min.js?ver=3.1.6"></script>
vendor: 1 bytes, line 1208
1208
1209<script id="wp-emoji-settings" type="application/json">
1210{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://trustoverip.org/wp-includes/js/wp-emoji-release.min.js?ver=7.1.1"}}
1211</script>
vendor: 1 bytes, line 1211
1211
1212<script type="module">
1213/*! This file is auto-generated */
1214var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
1215//# sourceURL=https://trustoverip.org/wp-includes/js/wp-emoji-loader.min.js
1216</script>
vendor: 1 bytes, line 1216
1216
1217<script type="text/javascript" nonce="37d9aaf48a91c10877e6f6f7877d0ecb"></script>
1217</body>
1218</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.