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
@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 cluster_role_diff.sh-session
kubectl get clusterroles admin --output=json | jq '.rules | map(. as $rule | .apiGroups | map(. as $apiGroup | $rule.resources | map(. as $resource | $rule.verbs | map(. as $verb | $apiGroup + ":" + $resource + ":" + $verb)))) | flatten | sort' > /tmp/admin.json
kubectl get clusterroles edit --output=json | jq '.rules | map(. as $rule | .apiGroups | map(. as $apiGroup | $rule.resources | map(. as $resource | $rule.verbs | map(. as $verb | $apiGroup + ":" + $resource + ":" + $verb)))) | flatten | sort' > /tmp/edit.json
kubectl get clusterroles view --output=json | jq '.rules | map(. as $rule | .apiGroups | map(. as $apiGroup | $rule.resources | map(. as $resource | $rule.verbs | map(. as $verb | $apiGroup + ":" + $resource + ":" + $verb)))) | flatten | sort' > /tmp/view.json
vimdiff /tmp/edit.json /tmp/admin.json
vimdiff /tmp/view.json /tmp/edit.json
@woodrow
woodrow / onc_converter.py
Created Apr 27, 2016
Convert OpenVPN config files to ChromeOS ONC files
View onc_converter.py
import argparse
import json
import re
import sys
import uuid
class OpenVPNNetworkConfiguration(object):
KNOWN_CONFIG_KEYS = {
'name': {'key': 'Name'},
View great_aws_jqs.sh
# check for open ports in security groups
aws ec2 describe-security-groups | jq '.SecurityGroups | map(select(.IpPermissions[] | select(.FromPort >= 443 and .ToPort <= 443)))
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
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)
@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 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 / 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
@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'
You can’t perform that action at this time.