https://words.filippo.io/

Eingereichte URL:
https://words.filippo.io/
Bericht beendet:
LinkText
https://filippo.io
NameTyp
0object
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
plausiblefunction
mjfunction
pjfunction
Zfunction
oyfunction
iyfunction
<!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>