data:text/html,<style>body,html{height:100%;display:grid;background-color:%2338383d}p{margin:auto;color:white;font-size:48pt;font-family:sans}</style><body><p id=p><script>n=()=>{p.innerText=(new Date()).toLocaleTimeString()};n();setInterval(n,60000);</script> |
I hereby claim:
- I am freddyb on github.
- I am freddyb (https://keybase.io/freddyb) on keybase.
- I have a public key whose fingerprint is 1331 4246 981D 2C81 F3B2 EEDD 8874 58AD 404E 0968
To claim this, I am signing this object:
This used to be a draft of my blog post "Finding the SqueezeBox Radio Default SSH Password".
The goal is to transplant the concepts of HTTP Strict Transport Security (HSTS)[^1] and Public Key Pinning Extension for HTTP[^2] to other protocols that support TLS. We aim to do those for popular internet protocols like SMTP, POP, FTP, XMPP and IRC.
- Identify status codes that are currently undefined and can be safely ignored by clients that do not support them
- In this status code, the server SHOULD send a list of tokens to describe it's Enhanced TLS Security settings. 2.1 foo
################################################################################################################
The master version of this document has now been moved to my blog
Yesterday, a lot of mainstream media (e.g., WIRED) started reporting about anonabox, an "an open source embedded networking device designed specifically to run Tor.", to quote their Kickstarter campaign.
For those of you who don't know what Tor is: It's a network run by volunteers that anonymizes your internet traffic. With everyone in the network using someone else's address from time to time, it is becoming harder for an observer (e.g. the websites you browse) to find out who is who.
/* this queue-style thing accepts a callback | |
and calls it when it has two results attached | |
usage: | |
j2a = new join2Async(console.log); | |
setTimeout( 'j2a.addResult("foo")', Math.ceil(Math.random()*10)); | |
setTimeout( 'j2a.addResult("var")', Math.ceil(Math.random()*10)); | |
// enjoy the race and see who's first \o/ | |
*/ | |
function join2Async(cb) { | |
// join 2 async call and return once *both* are done. |
#!/usr/bin/env python | |
""" | |
Length Chunk type Chunk data CRC | |
4 bytes 4 bytes Length bytes 4 bytes | |
89 50 4E 47 0D 0A 1A 0A |
class cidrator(): | |
def __init__(self, mask ="192.168.1.1/16", skip255=True, skip0=True): | |
self.skip255 = skip255 | |
self.skip0 = skip0 | |
addr, rng = mask.split("/") | |
addr_int = sum((256**(3-i) * int(b)) for i,b in enumerate(addr.split ("."))) | |
self.start = addr_int & int("0b"+("1"*int(rng)) + "0"*(32-int(rng)),2) | |
self.stop = addr_int | int("0b"+("0"*int(rng)) + "1"*(32-int(rng)),2) | |
self.current = self.start |