Skip to content

Instantly share code, notes, and snippets.

Steve Woodrow woodrow

Block or report user

Report or block woodrow

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View gist:841477
woodrow@woodrow-x200:~/tmp$ cat sort_test
1.2.3.4
2.3.4.5
12.3.2.4
12.2.3.4
12.2.3.5
11.2.3.4
1.12.3.4
20.2.3.4
21.2.3.4
@woodrow
woodrow / get_gmail_recipients.py
Created Jan 15, 2012
Determine who you sent mail to from an expiring/expired email addresss
View get_gmail_recipients.py
#!/usr/bin/env python
import imaplib
import email.parser
import pickle
import pprint
GMAIL_USERNAME = 'yourname@gmail.com'
GMAIL_PASSWORD = 'yourgmailpassword'
OLD_SENDER_ADDRESS = 'defuntaccount@mit.edu'
@woodrow
woodrow / demo_conn.py
Created Jan 23, 2012
Reproducing Unhandled Errors with txpostgres
View demo_conn.py
# based on fist example at http://wulczer.github.com/txpostgres/usage.html
import socket
import sys
from txpostgres import txpostgres
from twisted.internet import reactor, stdio
from twisted.python import log, util
from twisted.protocols import basic
View benchmark_stringcat.rb
require 'benchmark'
NUM_TRIALS = 10_000_000
Benchmark.bm(20) do |x|
x.report('no concatenation') do
NUM_TRIALS.times do
y = "onetwothree"
end
end
@woodrow
woodrow / gist:6347926
Created Aug 26, 2013
Passport MRZ check digit algorithm
View gist:6347926
def compute_check_digit(str)
str = str.strip.upcase
values = str.chars.map do |char|
case char
when '<'
0
when 'A'..'Z'
char.ord - 65 + 10
when '0'..'9'
char.ord - 48
View gist:6402706
match_latencies = c(
7.47978949546814, 6.318617582321167, 6.1188719272613525, 7.745437145233154,
...,
2.361427068710327, 3.1125471591949463)
nomatch_latencies = c(
1.8395578861236572, 1.9002978801727295, 2.7614076137542725, 4.611708402633667,
...,
2.752995729446411, 5.312501907348633)
View list_customers_by_coupon.rb
#!/usr/bin/env ruby
require 'stripe'
Stripe.api_key = 'API_KEY'
customers_by_coupon = {}
customer_count = nil
batch_count = 100
batch_offset = 0
@woodrow
woodrow / hpkp_hashes.sh
Created Feb 21, 2014
Public key pinning digest generation
View hpkp_hashes.sh
# get the SHA-1 digest of the subjectPublicKeyInfo of a certificate as used by Chromium's preloaded public key pinning
# http://src.chromium.org/viewvc/chrome/trunk/src/net/http/transport_security_state_static.h?r1=191212&r2=191211&pathrev=191212
curl -s https://pki.google.com/GIAG2.crt | openssl x509 -inform der -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha1
# (stdin)= 43dad630ee53f8a980ca6efd85f46aa37990e0ea
# get the base64-encoded SHA-256 digest of the subjectPublicKeyInfo of a certificate as used by HTTP Public Key Pinning
# (http://tools.ietf.org/html/draft-ietf-websec-key-pinning-11)
curl -s https://pki.google.com/GIAG2.crt | openssl x509 -inform der -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64
# 7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=
View ca_certs.sh
#!/bin/bash
mkdir -p /tmp/ca_certs/ && rm -f /tmp/ca_certs/*
cd /tmp/ca_certs/
# dump root certs and split on cert boundary (assuming no more than 1000 root certs)
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | csplit -s -k -f ca_cert -n 3 - '/-----BEGIN CERTIFICATE-----/' '{1000}' >/dev/null 2>&1
# rename the certs based on their openssl subject_hash to ensure the certs are sortable
ls /tmp/ca_certs/ | xargs -n 1 sh -c 'mv $0 $(openssl x509 -hash -noout -in $0)'
# print the OS version in the first line
system_profiler SPSoftwareDataType | grep -o 'System Version.*$' > /tmp/ca_certs.txt
# dump the text of the certs in subject_hash-sorted order into certs.txt
@woodrow
woodrow / ca_certs.patch
Created Mar 1, 2014
Root certificate changes in OSX 10.9.2/Security Update 2014-001
View ca_certs.patch
--- ca_certs-10.9.1.txt 2014-02-28 18:24:53.365172328 -0800
+++ ca_certs-10.9.2.txt 2014-02-28 18:25:18.209171996 -0800
@@ -1,1 +1,1 @@
-System Version: OS X 10.9.1 (13B42)
+System Version: OS X 10.9.2 (13C64)
@@ -2132,0 +2132,119 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
You can’t perform that action at this time.