https://words.filippo.io/

Submitted URL:
https://words.filippo.io/
Report Finished:

The outgoing links identified from the page

LinkText
https://filippo.io

JavaScript Variables · 14 found

Global JavaScript variables loaded on the window object of a page, are variables declared outside of functions and accessible from anywhere in the code within the current scope

NameType
0object
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
plausiblefunction
mjfunction
pjfunction
Zfunction
oyfunction
iyfunction

Console log messages · 0 found

Messages logged to the web console

HTML

The raw HTML body of the page

<!DOCTYPE html><html><head>
    <meta charset="utf-8">
    <title>Filippo Valsorda</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="shortcut icon" href="https://words.filippo.io/favicon.ico">
    <link rel="stylesheet" href="https://words.filippo.io/assets/css/new.css?v=777fcadf14">
    <link rel="stylesheet" href="https://words.filippo.io/assets/fonts/new.css?v=777fcadf14">

    <link href="https://abyssdomain.expert/@filippo" rel="me">
    <link href="https://bsky.app/profile/filippo.abyssdomain.expert" rel="me">

    <link rel="canonical" href="https://words.filippo.io/">
    <meta name="referrer" content="no-referrer-when-downgrade">
    
    <meta property="og:site_name" content="Filippo Valsorda">
    <meta property="og:type" content="website">
    <meta property="og:title" content="Filippo Valsorda">
    <meta property="og:url" content="https://words.filippo.io/">
    <meta name="twitter:card" content="summary">
    <meta name="twitter:title" content="Filippo Valsorda">
    <meta name="twitter:url" content="https://words.filippo.io/">
    <meta name="twitter:site" content="@FiloSottile">
    
    <script type="application/ld+json">
{
    "@context": "https://schema.org",
    "@type": "WebSite",
    "publisher": {
        "@type": "Organization",
        "name": "Filippo Valsorda",
        "url": "https://words.filippo.io/",
        "logo": {
            "@type": "ImageObject",
            "url": "https://words.filippo.io/favicon.ico",
            "width": 48,
            "height": 48
        }
    },
    "url": "https://words.filippo.io/",
    "name": "Filippo Valsorda",
    "mainEntityOfPage": "https://words.filippo.io/"
}
    </script>

    <meta name="generator" content="Ghost 5.105">
    <link rel="alternate" type="application/rss+xml" title="Filippo Valsorda" href="https://words.filippo.io/rss/">
    <script defer="" src="https://cdn.jsdelivr.net/ghost/portal@~2.46/umd/portal.min.js" data-i18n="true" data-ghost="https://words.filippo.io/" data-key="e08aaa9ff1895a7e514c231bcb" data-api="https://fvalsorda.ghost.io/ghost/api/content/" data-locale="en" crossorigin="anonymous"></script><style id="gh-members-styles">.gh-post-upgrade-cta-content,
.gh-post-upgrade-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    text-align: center;
    width: 100%;
    color: #ffffff;
    font-size: 16px;
}

.gh-post-upgrade-cta-content {
    border-radius: 8px;
    padding: 40px 4vw;
}

.gh-post-upgrade-cta h2 {
    color: #ffffff;
    font-size: 28px;
    letter-spacing: -0.2px;
    margin: 0;
    padding: 0;
}

.gh-post-upgrade-cta p {
    margin: 20px 0 0;
    padding: 0;
}

.gh-post-upgrade-cta small {
    font-size: 16px;
    letter-spacing: -0.2px;
}

.gh-post-upgrade-cta a {
    color: #ffffff;
    cursor: pointer;
    font-weight: 500;
    box-shadow: none;
    text-decoration: underline;
}

.gh-post-upgrade-cta a:hover {
    color: #ffffff;
    opacity: 0.8;
    box-shadow: none;
    text-decoration: underline;
}

.gh-post-upgrade-cta a.gh-btn {
    display: block;
    background: #ffffff;
    text-decoration: none;
    margin: 28px 0 0;
    padding: 8px 18px;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 600;
}

.gh-post-upgrade-cta a.gh-btn:hover {
    opacity: 0.92;
}</style>
    <script defer="" src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.5/umd/sodo-search.min.js" data-key="e08aaa9ff1895a7e514c231bcb" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.5/umd/main.css" data-sodo-search="https://fvalsorda.ghost.io/" data-locale="en" crossorigin="anonymous"></script>
    
    <link href="https://words.filippo.io/webmentions/receive/" rel="webmention">
    <script defer="" src="/public/cards.min.js?v=777fcadf14"></script>
    <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=777fcadf14">
    <script defer="" src="/public/member-attribution.min.js?v=777fcadf14"></script><style>:root {--ghost-accent-color: #df7f45;}</style>
    <script defer="" data-domain="blog.filippo.io" src="https://filippo.io/js/script.js"></script>
<script>
window.plausible = window.plausible || function () {
    (window.plausible.q = window.plausible.q || []).push(arguments)
}

document.addEventListener("DOMContentLoaded", (event) => {
    const params = new URLSearchParams(window.location.search);
    if (params.get("action") == "signin" && params.get("success") == "true")
		location.hash = "/portal/account/newsletters";
    
    if (window.location.pathname.startsWith("/p/"))
        document.querySelector(".post-title").insertAdjacentHTML("afterend",
           "<p><code>*** PREVIEW PREVIEW PREVIEW ***</code><br>" +
           "<code>DO NOT SHARE</code><br><code>*** PREVIEW PREVIEW PREVIEW ***</code></p>")
    
    if (!document.querySelector("body").classList.contains("post-template")) return;

    let trigger = document.createElement("div");
    let footnotes = document.querySelector(".footnotes");
    if (footnotes) {
        footnotes.before(trigger);
    } else {
        document.querySelector(".post-content").after(trigger);
    }

    new IntersectionObserver((entries, observer) => {
        entries.forEach(entry => {
            if (!entry.isIntersecting) return;
            observer.disconnect();
            plausible("Finished");
        })
    }).observe(trigger);

    new IntersectionObserver((entries, observer) => {
        entries.forEach(entry => {
            if (entry.isIntersecting) return;
            observer.disconnect();
            plausible("Scrolled");
        })
    }).observe(document.querySelector(".post-title"));
    
    document.querySelectorAll('a[href="https://abyssdomain.expert/@filippo"]').forEach((link) => {
        link.addEventListener("click", (event) => {
            let opts = {}
            if (!event.ctrlKey && !event.metaKey && !event.shiftKey) {
                opts.callback = () => { event.target.click(); };
                event.preventDefault();
            }
            plausible("Mastodon profile click", opts);
        }, { once: true });
    });
    
    document.querySelectorAll('a[href="#/portal/signup"]').forEach((link) => {
        link.addEventListener("click", (event) => {
            plausible("Subscribe link click");
        }, { once: true });
    });

    document.querySelectorAll('.subscribe-cta button').forEach((link) => {
        link.addEventListener("click", (event) => {
            plausible("Subscribe button click");
        }, { once: true });
    });
    
    /* const observer = new MutationObserver(function() {
        console.log("Observed mutation");
        document.querySelectorAll(".gh-portal-triggerbtn-iframe").forEach((iframe) => {
            console.log("Found iframe");
            console.log(iframe.contentWindow.document);
            iframe.contentWindow.document.addEventListener("DOMContentLoaded", (event) => {
                console.log(iframe.contentWindow.document.querySelectorAll('.gh-portal-triggerbtn-container'));
                iframe.contentWindow.document.querySelectorAll('.gh-portal-triggerbtn-container').forEach((link) => {
                    link.addEventListener("click", (event) => {
                        console.log("Subscribe button click");
                        plausible("Subscribe button click");
                    }, { once: true });
                });
            });
            observer.disconnect();
        });
    });
    observer.observe(document.querySelector('body'), { childList: true, subtree: true }); */
});
</script>
<style>.gh-portal-account-header{display:flex;flex-direction:column;align-items:center;margin:0 0 32px}.gh-portal-account-header .gh-portal-avatar{margin:6px 0 8px!important}.gh-portal-account-data{margin-bottom:40px}footer.gh-portal-account-footer{display:flex}.gh-portal-account-footer.paid{margin-top:12px}.gh-portal-account-footermenu{display:flex;align-items:center;list-style:none;padding:0;margin:0}.gh-portal-account-footerright{display:flex;flex-grow:1;align-items:center;justify-content:flex-end}.gh-portal-account-footermenu li{margin-inline-end:16px}.gh-portal-account-footermenu li:last-of-type{margin-inline-end:0}.gh-portal-freeaccount-newsletter{display:flex;align-items:center;justify-content:space-between;margin-top:24px}.gh-portal-freeaccount-newsletter .label{display:flex;flex-direction:column;flex-grow:1}.gh-portal-free-ctatext{margin-top:-12px}.gh-portal-cancelcontinue-container{margin:24px 0 32px}.gh-portal-list-detail .gh-portal-email-notice{display:flex;align-items:center;gap:5px;margin-top:6px;color:var(--red);font-weight:500;font-size:1.25rem;letter-spacing:.2px}.gh-portal-email-notice-icon{width:20px;height:20px}.gh-portal-billing-button-loader{width:32px;height:32px;margin-inline-end:-3px;opacity:.6}.gh-portal-product-icon{width:52px;margin-inline-end:12px;border-radius:2px}.gh-portal-account-discountcontainer{position:relative;display:flex;align-items:center}.gh-portal-account-old-price{text-decoration:line-through;color:var(--grey9)!important}.gh-portal-account-tagicon{width:16px;height:16px;color:var(--brandcolor);margin-inline-end:5px;z-index:999}@media (max-width: 390px){.gh-portal-account-footer{padding:0!important}}@media (max-width: 340px){.gh-portal-account-footer{padding:0!important;flex-wrap:wrap;gap:12px}.gh-portal-account-footer .gh-portal-account-footerright{justify-content:flex-start}}.gh-email-suppressed-page-title{margin-bottom:14px}.gh-email-suppressed-page-icon{display:block;width:38px;height:38px;margin:0 auto 18px}.gh-email-suppressed-page-text{padding:0 14px;text-align:center;color:var(--grey6)}.gh-email-faq-footer-text{color:var(--grey8)}.gh-portal-list-detail.email-newsletter .gh-email-faq-page-button{display:block;margin-top:3px}.gh-portal-action-footer .gh-email-faq-page-button{margin-inline-start:4px}.emailReceivingFAQ .gh-portal-btn-back,.emailReceivingFAQ .gh-portal-btn-back:hover{left:calc(6vmin - 14px)}html[dir=rtl] .emailReceivingFAQ .gh-portal-btn-back,html[dir=rtl] .emailReceivingFAQ .gh-portal-btn-back:hover{right:calc(6vmin - 14px);left:unset}.emailReceivingFAQ .gh-portal-closeicon-container{right:calc(6vmin - 20px)}@media (max-width: 480px){.emailReceivingFAQ .gh-portal-btn-back,.emailReceivingFAQ .gh-portal-btn-back:hover{left:16px}.emailReceivingFAQ .gh-portal-closeicon-container{right:24px}}.gh-email-faq-page-button{color:var(--brandcolor);cursor:pointer;background:none;transition:color linear .1s;font-size:1.45rem}html[dir=rtl] .gh-email-faq-page-button span{transform:scaleX(-1);display:inline-flex}</style><style>.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion: no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
</style></head>

<body class="home-template">
    
<style>
main {
    counter-reset: issue calc(1 + 40);
}
.tag-dispatches:not(.tag-maintainer) .post-meta::after {
    counter-increment: issue -1;
    content: "— Cryptography Dispatches #" counter(issue);
}
.tag-dispatches.tag-maintainer .post-meta::after {
    counter-increment: issue -1;
    content: "— Maintainer Dispatches #" counter(issue);
}
</style>

<header>
    <div><a href="https://filippo.io"><picture>
        <source srcset="https://words.filippo.io/content/images/2023/02/Logo-Bianco-Filippo-Valsorda-def-web.png" media="(prefers-color-scheme: dark)">
        <img src="https://words.filippo.io/content/images/2023/02/Logo-Nero-Filippo-Valsorda-def-web.png" alt="Filippo Valsorda">
    </picture></a></div>
</header>

<main class="index">
    <!--  -->
    <form data-members-form="subscribe" class="subscribe-cta">
    <div>Subscribe to Cryptography Dispatches for more!</div>
    <input data-members-email="" type="email" required="true" placeholder="Type your email...">
    <button type="submit">Subscribe</button>
</form>    <article class="post tag-dispatches tag-maintainer">
        <span class="post-meta">
            <time datetime="2024-12-05">05 Dec 2024</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/frood/">frood, an Alpine initramfs NAS</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2024-10-09">09 Oct 2024</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/accumulated/">Accumulated Test Vectors</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2024-09-25">25 Sep 2024</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/fips-hkdf/">The FIPS Compliance of HKDF</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2024-08-21">21 Aug 2024</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/ml-kem-seeds/">Let’s All Agree to Use Seeds as ML-KEM Keys</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2024-07-17">17 Jul 2024</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/age-plugins/">age Plugins</a></h1>
    </article>
    <article class="post tag-dispatches tag-maintainer">
        <span class="post-meta">
            <time datetime="2024-07-08">08 Jul 2024</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/geomys/">Geomys, a blueprint for a sustainable open source maintenance firm</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2024-06-26">26 Jun 2024</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/xaes-256-gcm/">XAES-256-GCM</a></h1>
    </article>
    <article class="post tag-dispatches tag-maintainer">
        <span class="post-meta">
            <time datetime="2024-04-06">06 Apr 2024</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/maintenance-policy/">My Maintenance Policy</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2024-02-14">14 Feb 2024</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/secure-elements/">PINs for Cryptography with Hardware Secure Elements</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2024-01-30">30 Jan 2024</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/mlkem768/">Post-quantum Cryptography for the Go Ecosystem</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2023-11-07">07 Nov 2023</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/kyber-math/">Enough Polynomials and Linear Algebra to Implement Kyber</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2023-10-24">24 Oct 2023</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/parameters/">Why We Don’t Generate Elliptic Curves Every Day</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2023-10-05">05 Oct 2023</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/seeds-bounty/">Announcing the $12k NIST Elliptic Curves Seeds Bounty</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2023-07-06">06 Jul 2023</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/xaes-256-gcm-11/">I want XAES-256-GCM/11</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2023-04-11">11 Apr 2023</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/near-miss/">A Cryptographic Near Miss</a></h1>
    </article>
    <article class="post tag-dispatches tag-maintainer">
        <span class="post-meta">
            <time datetime="2023-03-23">23 Mar 2023</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/go-1-21-plan/">Planning Go 1.21 Cryptography Work</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2023-03-03">03 Mar 2023</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/avoid-the-randomness-from-the-sky/">Avoid The Randomness From The Sky</a></h1>
    </article>
    <article class="post tag-maintainer tag-dispatches">
        <span class="post-meta">
            <time datetime="2023-02-02">02 Feb 2023</time>
        </span>
        <h1 class="post-title"><a href="/full-time-maintainer/">I’m Now a Full-Time Professional Open Source Maintainer</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2023-01-08">08 Jan 2023</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/whoami-updated/">ssh whoami.filippo.io</a></h1>
    </article>
    <article class="post tag-dispatches tag-maintainer">
        <span class="post-meta">
            <time datetime="2023-01-04">04 Jan 2023</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/go-1-20-cryptography/">Go 1.20 Cryptography</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2022-12-28">28 Dec 2022</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/passage/">My age+YubiKeys Password Management Solution</a></h1>
    </article>
    <article class="post tag-dispatches tag-maintainer no-image">
        <span class="post-meta">
            <time datetime="2022-11-09">09 Nov 2022</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/certificate-interning/">A GC-Friendly Go Interning Cache</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2022-11-02">02 Nov 2022</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/openssl-punycode/">Why Did the OpenSSL Punycode Vulnerability Happen</a></h1>
    </article>
    <article class="post tag-dispatches tag-maintainer no-image">
        <span class="post-meta">
            <time datetime="2022-10-26">26 Oct 2022</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/reciprocal/">The Reciprocal Value of Access to Maintainers</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2022-09-29">29 Sep 2022</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/age-authentication/">age and Authenticated Encryption</a></h1>
    </article>
    <article class="post tag-dispatches tag-maintainer no-image">
        <span class="post-meta">
            <time datetime="2022-09-12">12 Sep 2022</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/go1-20/">Planning Go 1.20 Cryptography Work</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2022-08-04">04 Aug 2022</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/wide-reduction/">A Wide Reduction Trick</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2022-07-29">29 Jul 2022</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/post-quantum-age/">KEMs and Post-Quantum age</a></h1>
    </article>
    <article class="post no-image">
        <span class="post-meta">
            <time datetime="2022-03-17">17 Mar 2022</time>
        </span>
        <h1 class="post-title"><a href="/pay-maintainers/">How to pay professional maintainers</a></h1>
    </article>
    <article class="post no-image">
        <span class="post-meta">
            <time datetime="2021-12-11">11 Dec 2021</time>
        </span>
        <h1 class="post-title"><a href="/professional-maintainers/">Professional maintainers: a wake-up call</a></h1>
    </article>
    <article class="post tag-dispatches tag-elsewhere no-image">
        <span class="post-meta">
            <time datetime="2021-09-16">16 Sep 2021</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/cipher-suite-ordering/">Automatic Cipher Suite Ordering in crypto/tls</a></h1>
    </article>
    <article class="post tag-dispatches">
        <span class="post-meta">
            <time datetime="2021-01-10">10 Jan 2021</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/telegram-ecdh/">The Most Backdoor-Looking Bug I’ve Ever Seen</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2020-12-18">18 Dec 2020</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/edwards25519-formulas/">Re-Deriving the edwards25519 Decoding Formulas</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2020-10-08">08 Oct 2020</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/reconstruct-vs-validate/">Reconstruct Instead of Validating</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2020-09-08">08 Sep 2020</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/nacl-api/">NaCl Is Not a High-Level API</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2020-08-22">22 Aug 2020</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/registries-considered-harmful/">Registries Considered Harmful</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2020-07-19">19 Jul 2020</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/replace-pgp-with-https/">Replace PGP With an HTTPS Form</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2020-07-04">04 Jul 2020</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/dsa/">DSA Is Past Its Prime</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2020-05-27">27 May 2020</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/x25519-associative/">Is X25519 Associative? Sometimes!</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2020-04-24">24 Apr 2020</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/openssh-fido2/">OpenSSH 8.2 Just Works with U2F/FIDO2 Security Keys</a></h1>
    </article>
    <article class="post tag-technical-notes no-image">
        <span class="post-meta">
            <time datetime="2020-04-18">18 Apr 2020</time>
        </span>
        <h1 class="post-title"><a href="/usb-c-charger-for-a-cheap-chromebook/">Hacking together a USB-C charger for a cheap Chromebook</a></h1>
    </article>
    <article class="post tag-go">
        <span class="post-meta">
            <time datetime="2020-03-15">15 Mar 2020</time>
        </span>
        <h1 class="post-title"><a href="/install-go-tools-from-modules-with-brew-gomod/">Install Go tools from modules with brew-gomod</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2020-02-28">28 Feb 2020</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/go-1-14-crypto/">New Crypto in Go 1.14</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2020-02-10">10 Feb 2020</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/linux-csprng/">The Linux CSPRNG Is Now Good!</a></h1>
    </article>
    <article class="post tag-go">
        <span class="post-meta">
            <time datetime="2019-07-18">18 Jul 2019</time>
        </span>
        <h1 class="post-title"><a href="/efficient-go-apis-with-the-inliner/">Efficient Go APIs with the mid-stack inliner</a></h1>
    </article>
    <article class="post tag-dispatches no-image">
        <span class="post-meta">
            <time datetime="2019-07-06">06 Jul 2019</time>
        </span>
        <h1 class="post-title"><a href="/dispatches/openpgp-is-broken/">Hello World, and OpenPGP Is Broken</a></h1>
    </article>
    <article class="post tag-crypto tag-mainline">
        <span class="post-meta">
            <time datetime="2019-05-18">18 May 2019</time>
        </span>
        <h1 class="post-title"><a href="/using-ed25519-keys-for-encryption/">Using Ed25519 signing keys for encryption</a></h1>
    </article>
    <article class="post tag-go tag-crypto tag-mainline">
        <span class="post-meta">
            <time datetime="2019-04-02">02 Apr 2019</time>
        </span>
        <h1 class="post-title"><a href="/a-literate-go-implementation-of-poly1305/">A Go implementation of Poly1305 that makes sense</a></h1>
    </article>
    <article class="post tag-go tag-tls no-image">
        <span class="post-meta">
            <time datetime="2019-01-07">07 Jan 2019</time>
        </span>
        <h1 class="post-title"><a href="/mkcert-valid-https-certificates-for-localhost/">mkcert: valid HTTPS certificates for localhost</a></h1>
    </article>
    <article class="post tag-technical-notes no-image">
        <span class="post-meta">
            <time datetime="2018-09-10">10 Sep 2018</time>
        </span>
        <h1 class="post-title"><a href="/touch-to-operate-password-store-yubikey-4/">Touch-to-operate password-store with YubiKey 4</a></h1>
    </article>
    <article class="post tag-technical-notes no-image">
        <span class="post-meta">
            <time datetime="2018-05-03">03 May 2018</time>
        </span>
        <h1 class="post-title"><a href="/gmail-bot-with-apps-script-and-typescript/">Making a Gmail bot with Apps Script and TypeScript</a></h1>
    </article>
    <article class="post tag-technical-notes no-image">
        <span class="post-meta">
            <time datetime="2018-02-07">07 Feb 2018</time>
        </span>
        <h1 class="post-title"><a href="/easy-windows-and-linux-cross-compilers-for-macos/">Easy Windows and Linux cross-compilers for macOS</a></h1>
    </article>
    <article class="post tag-crypto tag-go no-image">
        <span class="post-meta">
            <time datetime="2017-10-14">14 Oct 2017</time>
        </span>
        <h1 class="post-title"><a href="/live-streaming-cryptopals/">Live streaming Cryptopals</a></h1>
    </article>
    <article class="post tag-crypto tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2017-10-04">04 Oct 2017</time>
        </span>
        <h1 class="post-title"><a href="/the-scrypt-parameters/">The scrypt parameters</a></h1>
    </article>
    <article class="post tag-mainline tag-tls no-image">
        <span class="post-meta">
            <time datetime="2017-09-28">28 Sep 2017</time>
        </span>
        <h1 class="post-title"><a href="/we-need-to-talk-about-session-tickets/">We need to talk about Session Tickets</a></h1>
    </article>
    <article class="post tag-go tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2017-09-16">16 Sep 2017</time>
        </span>
        <h1 class="post-title"><a href="/captive-browser/">A secure captive portal browser with automatic DNS detection</a></h1>
    </article>
    <article class="post tag-mainline tag-crypto tag-go tag-tls no-image">
        <span class="post-meta">
            <time datetime="2017-09-06">06 Sep 2017</time>
        </span>
        <h1 class="post-title"><a href="/playing-with-kernel-tls-in-linux-4-13-and-go/">Playing with kernel TLS in Linux 4.13 and Go</a></h1>
    </article>
    <article class="post tag-crypto tag-go tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2017-08-29">29 Aug 2017</time>
        </span>
        <h1 class="post-title"><a href="/restic-cryptography/">restic cryptography</a></h1>
    </article>
    <article class="post tag-mainline tag-go no-image">
        <span class="post-meta">
            <time datetime="2017-08-15">15 Aug 2017</time>
        </span>
        <h1 class="post-title"><a href="/rustgo/">rustgo: calling Rust from Go with near-zero overhead</a></h1>
    </article>
    <article class="post tag-go tag-technical-notes no-image">
        <span class="post-meta">
            <time datetime="2017-08-13">13 Aug 2017</time>
        </span>
        <h1 class="post-title"><a href="/cleaning-up-my-gopath-with-homebrew/">Cleaning up my GOPATH with Homebrew</a></h1>
    </article>
    <article class="post tag-go tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2017-04-23">23 Apr 2017</time>
        </span>
        <h1 class="post-title"><a href="/reproducing-go-binaries-byte-by-byte/">Reproducing Go binaries byte-by-byte</a></h1>
    </article>
    <article class="post tag-technical-notes no-image">
        <span class="post-meta">
            <time datetime="2017-03-31">31 Mar 2017</time>
        </span>
        <h1 class="post-title"><a href="/filevault-2-custom-passphrase/">Setting a custom FileVault (macOS FDE) passphrase</a></h1>
    </article>
    <article class="post tag-mainline tag-tls no-image">
        <span class="post-meta">
            <time datetime="2017-02-09">09 Feb 2017</time>
        </span>
        <h1 class="post-title"><a href="/finding-ticketbleed/">Finding Ticketbleed</a></h1>
    </article>
    <article class="post tag-elsewhere tag-talks tag-go no-image">
        <span class="post-meta">
            <time datetime="2017-02-07">07 Feb 2017</time>
        </span>
        <h1 class="post-title"><a href="/go-time-32-hellogopher-whosthere/">Go Time #32 - Hellogopher, whosthere?</a></h1>
    </article>
    <article class="post tag-talks tag-tls no-image">
        <span class="post-meta">
            <time datetime="2017-02-01">01 Feb 2017</time>
        </span>
        <h1 class="post-title"><a href="/tls-1-3-at-33c3/">TLS 1.3 at 33c3</a></h1>
    </article>
    <article class="post tag-technical-notes no-image">
        <span class="post-meta">
            <time datetime="2017-01-23">23 Jan 2017</time>
        </span>
        <h1 class="post-title"><a href="/webex-extension-vulnerability/">How to protect yourself from the WebEx extension</a></h1>
    </article>
    <article class="post tag-elsewhere tag-go no-image">
        <span class="post-meta">
            <time datetime="2017-01-02">02 Jan 2017</time>
        </span>
        <h1 class="post-title"><a href="/exposing-go-on-the-internet/">So you want to expose Go on the Internet</a></h1>
    </article>
    <article class="post tag-mainline tag-crypto no-image">
        <span class="post-meta">
            <time datetime="2016-12-06">06 Dec 2016</time>
        </span>
        <h1 class="post-title"><a href="/giving-up-on-long-term-pgp/">I'm giving up on PGP</a></h1>
    </article>
    <article class="post tag-elsewhere tag-tls tag-crypto no-image">
        <span class="post-meta">
            <time datetime="2016-10-12">12 Oct 2016</time>
        </span>
        <h1 class="post-title"><a href="/tls-nonce-nse/">TLS nonce-nse</a></h1>
    </article>
    <article class="post tag-tls tag-crypto tag-elsewhere tag-talks no-image">
        <span class="post-meta">
            <time datetime="2016-09-25">25 Sep 2016</time>
        </span>
        <h1 class="post-title"><a href="/an-overview-of-tls-1-3/">An overview of TLS 1.3</a></h1>
    </article>
    <article class="post tag-mainline tag-crypto no-image">
        <span class="post-meta">
            <time datetime="2016-08-31">31 Aug 2016</time>
        </span>
        <h1 class="post-title"><a href="/so-i-lost-my-openbsd-fde-password/">So I lost my OpenBSD FDE password</a></h1>
    </article>
    <article class="post tag-elsewhere tag-go no-image">
        <span class="post-meta">
            <time datetime="2016-07-18">18 Jul 2016</time>
        </span>
        <h1 class="post-title"><a href="/the-complete-guide-to-go-net-http-timeouts/">The complete guide to Go net/http timeouts</a></h1>
    </article>
    <article class="post tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2016-07-05">05 Jul 2016</time>
        </span>
        <h1 class="post-title"><a href="/securing-a-travel-iphone/">Securing a travel iPhone</a></h1>
    </article>
    <article class="post tag-mainline tag-go no-image">
        <span class="post-meta">
            <time datetime="2016-07-03">03 Jul 2016</time>
        </span>
        <h1 class="post-title"><a href="/analyzing-go-vendoring-with-bigquery/">Analyzing Go Vendoring with BigQuery</a></h1>
    </article>
    <article class="post tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2016-07-02">02 Jul 2016</time>
        </span>
        <h1 class="post-title"><a href="/git-fixup-amending-an-older-commit/">git fixup: --amend for older commits</a></h1>
    </article>
    <article class="post tag-go tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2016-06-13">13 Jun 2016</time>
        </span>
        <h1 class="post-title"><a href="/stale-goroot-and-gorebuild/">Stale GOROOT and gorebuild</a></h1>
    </article>
    <article class="post tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2016-05-26">26 May 2016</time>
        </span>
        <h1 class="post-title"><a href="/untrusting-an-intermediate-ca-on-os-x/">Untrusting an intermediate CA on OS X</a></h1>
    </article>
    <article class="post tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2016-05-09">09 May 2016</time>
        </span>
        <h1 class="post-title"><a href="/self-host-analytics/">Self-host analytics for better privacy and accuracy</a></h1>
    </article>
    <article class="post tag-go tag-elsewhere no-image">
        <span class="post-meta">
            <time datetime="2016-05-09">09 May 2016</time>
        </span>
        <h1 class="post-title"><a href="/vendorcheck-the-simplest-go-static-analysis-tool/">vendorcheck: the simplest Go static analysis tool</a></h1>
    </article>
    <article class="post tag-elsewhere tag-crypto tag-tls no-image">
        <span class="post-meta">
            <time datetime="2016-05-07">07 May 2016</time>
        </span>
        <h1 class="post-title"><a href="/luckyminus20/">"LuckyMinus20": Yet Another Padding Oracle in OpenSSL CBC Cipher Suites</a></h1>
    </article>
    <article class="post tag-go tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2016-04-17">17 Apr 2016</time>
        </span>
        <h1 class="post-title"><a href="/shrink-your-go-binaries-with-this-one-weird-trick/">Shrink your Go binaries with this one weird trick</a></h1>
    </article>
    <article class="post tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2016-04-04">04 Apr 2016</time>
        </span>
        <h1 class="post-title"><a href="/understanding-metrics/">Understanding Metrics in the Age of the TSDB</a></h1>
    </article>
    <article class="post tag-technical-notes no-image">
        <span class="post-meta">
            <time datetime="2016-03-23">23 Mar 2016</time>
        </span>
        <h1 class="post-title"><a href="/mixing-speaker-and-slides-recording-with-ffmpeg/">Technical notes: mixing speaker and slides recording with FFmpeg</a></h1>
    </article>
    <article class="post tag-go tag-elsewhere no-image">
        <span class="post-meta">
            <time datetime="2016-01-22">22 Jan 2016</time>
        </span>
        <h1 class="post-title"><a href="/go-coverage-with-external-tests/">Coverage for end-to-end tests of Go programs</a></h1>
    </article>
    <article class="post tag-crypto tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2016-01-05">05 Jan 2016</time>
        </span>
        <h1 class="post-title"><a href="/bleichenbacher-06-signature-forgery-in-python-rsa/">Bleichenbacher'06 signature forgery in python-rsa</a></h1>
    </article>
    <article class="post tag-go tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2015-12-18">18 Dec 2015</time>
        </span>
        <h1 class="post-title"><a href="/most-go-tools-now-work-with-go15vendorexperiment/">Most Go tools now work with GO15VENDOREXPERIMENT</a></h1>
    </article>
    <article class="post tag-go tag-tls tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2015-12-08">08 Dec 2015</time>
        </span>
        <h1 class="post-title"><a href="/patching-go-crypto-tls-to-work-with-ie6/">SSLv2 redux: patching Go crypto/tls to work with IE6</a></h1>
    </article>
    <article class="post tag-talks tag-go no-image">
        <span class="post-meta">
            <time datetime="2015-11-11">11 Nov 2015</time>
        </span>
        <h1 class="post-title"><a href="/automated-testing-with-go-fuzz-gothamgo/">"Automated Testing with go-fuzz" @ GothamGo</a></h1>
    </article>
    <article class="post tag-go tag-elsewhere no-image">
        <span class="post-meta">
            <time datetime="2015-10-29">29 Oct 2015</time>
        </span>
        <h1 class="post-title"><a href="/creative-foot-shooting-with-go-rwmutex/">Creative foot-shooting with Go RWMutex</a></h1>
    </article>
    <article class="post tag-go tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2015-08-26">26 Aug 2015</time>
        </span>
        <h1 class="post-title"><a href="/building-python-modules-with-go-1-5/">Building Python modules with Go 1.5</a></h1>
    </article>
    <article class="post tag-elsewhere tag-go no-image">
        <span class="post-meta">
            <time datetime="2015-08-06">06 Aug 2015</time>
        </span>
        <h1 class="post-title"><a href="/dns-parser-meet-go-fuzzer/">DNS parser, meet Go fuzzer</a></h1>
    </article>
    <article class="post tag-elsewhere no-image">
        <span class="post-meta">
            <time datetime="2015-08-04">04 Aug 2015</time>
        </span>
        <h1 class="post-title"><a href="/a-deep-look-at-cve-2015-5477/">A deep look at CVE-2015-5477</a></h1>
    </article>
    <article class="post tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2015-08-04">04 Aug 2015</time>
        </span>
        <h1 class="post-title"><a href="/ssh-whoami-filippo-io/">ssh whoami.filippo.io</a></h1>
    </article>
    <article class="post tag-go tag-elsewhere no-image">
        <span class="post-meta">
            <time datetime="2015-08-03">03 Aug 2015</time>
        </span>
        <h1 class="post-title"><a href="/quick-and-dirty-annotations-for-go-stack-traces/">Quick and dirty annotations for Go stack traces</a></h1>
    </article>
    <article class="post tag-technical-notes no-image">
        <span class="post-meta">
            <time datetime="2015-08-03">03 Aug 2015</time>
        </span>
        <h1 class="post-title"><a href="/converting-a-partition-image-to-a-bootable-disk-image/">Technical notes: convert a partition image to a bootable disk image</a></h1>
    </article>
    <article class="post tag-go tag-elsewhere no-image">
        <span class="post-meta">
            <time datetime="2015-07-01">01 Jul 2015</time>
        </span>
        <h1 class="post-title"><a href="/setting-go-variables-at-compile-time/">Setting Go variables at compile time</a></h1>
    </article>
    <article class="post tag-go tag-elsewhere no-image">
        <span class="post-meta">
            <time datetime="2015-06-18">18 Jun 2015</time>
        </span>
        <h1 class="post-title"><a href="/go-has-a-debugger-and-its-awesome/">Go has a debugger—and it's awesome!</a></h1>
    </article>
    <article class="post tag-mainline tag-tls no-image">
        <span class="post-meta">
            <time datetime="2015-06-06">06 Jun 2015</time>
        </span>
        <h1 class="post-title"><a href="/how-plex-is-doing-https-for-all-its-users/">How Plex is doing HTTPS for all its users</a></h1>
    </article>
    <article class="post tag-elsewhere tag-crypto tag-tls no-image">
        <span class="post-meta">
            <time datetime="2015-05-21">21 May 2015</time>
        </span>
        <h1 class="post-title"><a href="/logjam-explained/">Logjam explained</a></h1>
    </article>
    <article class="post tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2015-04-08">08 Apr 2015</time>
        </span>
        <h1 class="post-title"><a href="/the-unofficial-chrome-sha1-faq/">The unofficial Chrome SHA1 deprecation FAQ</a></h1>
    </article>
    <article class="post tag-tls tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2015-03-31">31 Mar 2015</time>
        </span>
        <h1 class="post-title"><a href="/the-sad-state-of-smtp-encryption/">The sad state of SMTP encryption</a></h1>
    </article>
    <article class="post tag-tls tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2015-02-20">20 Feb 2015</time>
        </span>
        <h1 class="post-title"><a href="/komodia-superfish-ssl-validation-is-broken/">Komodia/Superfish SSL Validation is broken</a></h1>
    </article>
    <article class="post tag-technical-notes no-image">
        <span class="post-meta">
            <time datetime="2015-02-20">20 Feb 2015</time>
        </span>
        <h1 class="post-title"><a href="/make-your-own-superfish-infected-vm/">Make your own Superfish infected VM</a></h1>
    </article>
    <article class="post tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2015-02-12">12 Feb 2015</time>
        </span>
        <h1 class="post-title"><a href="/so-i-lost-the-password-of-my-nas/">So I lost my NAS password</a></h1>
    </article>
    <article class="post tag-crypto tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2015-01-11">11 Jan 2015</time>
        </span>
        <h1 class="post-title"><a href="/scrypt-all-the-things/">scrypt all the things!</a></h1>
    </article>
    <article class="post tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2014-11-10">10 Nov 2014</time>
        </span>
        <h1 class="post-title"><a href="/psa-enable-automatic-updates-please/">PSA: enable automatic updates. Please.</a></h1>
    </article>
    <article class="post tag-talks">
        <span class="post-meta">
            <time datetime="2014-06-29">29 Jun 2014</time>
        </span>
        <h1 class="post-title"><a href="/the-heartbleed-test-at-owasp-slash-nyu-poly/">"The Heartbleed Test" @ OWASP / NYU Poly</a></h1>
    </article>
    <article class="post tag-crypto tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2014-05-28">28 May 2014</time>
        </span>
        <h1 class="post-title"><a href="/salt-and-pepper/">Salt &amp; Pepper, please: a note on password storage</a></h1>
    </article>
    <article class="post tag-crypto tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2014-03-31">31 Mar 2014</time>
        </span>
        <h1 class="post-title"><a href="/on-keybase-dot-io-and-encrypted-private-key-sharing/">On Keybase.io and encrypted private key uploading</a></h1>
    </article>
    <article class="post tag-go tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2014-03-26">26 Mar 2014</time>
        </span>
        <h1 class="post-title"><a href="/why-go-is-elegant-and-makes-my-code-elegant/">Why Go is elegant and makes my code elegant</a></h1>
    </article>
    <article class="post tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2014-03-18">18 Mar 2014</time>
        </span>
        <h1 class="post-title"><a href="/my-remote-shell-session-setup/">My remote shell session setup</a></h1>
    </article>
    <article class="post tag-technical-notes no-image">
        <span class="post-meta">
            <time datetime="2014-03-13">13 Mar 2014</time>
        </span>
        <h1 class="post-title"><a href="/native-scrolling-and-iterm2/">Native scrolling and iTerm2</a></h1>
    </article>
    <article class="post tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2013-12-12">12 Dec 2013</time>
        </span>
        <h1 class="post-title"><a href="/how-the-new-gmail-image-proxy-works-and-what-this-means-for-you/">How the new Gmail image proxy works and what this means for you</a></h1>
    </article>
    <article class="post tag-crypto tag-mainline no-image">
        <span class="post-meta">
            <time datetime="2013-11-10">10 Nov 2013</time>
        </span>
        <h1 class="post-title"><a href="/the-ecb-penguin/">The ECB Penguin</a></h1>
    </article>
    <form data-members-form="subscribe" class="subscribe-cta">
    <div>Subscribe to Cryptography Dispatches for more!</div>
    <input data-members-email="" type="email" required="true" placeholder="Type your email...">
    <button type="submit">Subscribe</button>
</form></main>


    


<div id="ghost-portal-root"><iframe srcdoc="<!DOCTYPE html>" data-testid="portal-trigger-frame" title="portal-trigger" frameborder="0" dir="ltr" class="gh-portal-triggerbtn-iframe" style="z-index: 3999998; position: fixed; bottom: 0px; right: 0px; width: 187px; max-width: 500px; height: 98px; animation: 250ms ease 0s 1 normal none running animation-bhegco; transition: opacity 0.3s ease 0s; overflow: hidden;"></iframe></div><div id="sodo-search-root"></div></body></html>