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 » 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&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&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 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 & 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? </li> 923 924 925 926<li>Are there any missing sections? </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> </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> </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.