Skip to content

Instantly share code, notes, and snippets.

@orip
orip / log_http_headers.py
Last active February 19, 2024 13:42 — forked from phrawzty/2serv.py
simple python http server to dump request headers
#!/usr/bin/env python3
import http
import http.server
import socketserver
import sys
def _log(s):
print(s)
@orip
orip / orip_macbook_setup_tips.md
Created January 30, 2023 09:05
orip's MacBook setup tips

Install and manage utilities and applications

homebrew (https://brew.sh/)

Applications

Terminals

Standard option: iterm2

brew install iterm2
@orip
orip / diff_big_sizes.py
Created October 6, 2022 21:30
Diff two runs of nm on similar executables to find large symbol size increases
#! /usr/bin/env python3
"""
Build to compare two outputs of this line on fairly identical executables
nm --print-size --radix=d <executable> | grep ' .* .* ' | cut -d' ' -f 2-10
To just see the top symbols, can run e.g
nm --print-size --size-sort --radix=d <executable>
"""
@orip
orip / worktrees.py
Created October 3, 2022 08:24
Simple git worktree filters in Python. Sample usage: `cd $(worktrees.py ~/myrepo max_path)`
#!/usr/bin/env python3
import argparse
import os
import subprocess
import sys
from dataclasses import dataclass
@dataclass
@orip
orip / jrpc_curl.sh
Last active September 5, 2022 09:39
helper script to make JSON-RPC (JRPC) 2.0 calls using curl
#!/bin/bash
usage_exit() {
echo "$0 <target-url> <jrpc-method> [jrpc-params] [extra-curl-args]"
exit 1
}
target="$1"
shift
method="$1"
shift
if [[ -z $target ]] || [[ -z $method ]]; then
@orip
orip / wt.zsh
Last active September 5, 2022 11:19
`wt` zsh function to switch between git worktrees using fzf
wt() {
if [ "$#" -eq 0 ]; then
local -a extra_fzf_args
elif [ "$#" -eq 1 ]; then
extra_fzf_args=(
--query
"'$1"
)
else
echo "Unknown arguments $@"
@orip
orip / passgen.go
Created June 9, 2022 09:19
Generate secure passwords in Go
package main
import (
"crypto/rand"
"flag"
"fmt"
"math/big"
)
func GenerateSecurePassword(n int, alphabet string) (string, error) {
@orip
orip / https_server.py
Last active May 23, 2024 12:31
Simple Python 3 HTTPS server that acts as much as possible like `python -m http.server`
#!/usr/bin/env python3
# Inspired by https://stackoverflow.com/a/19706670/37020 by @mfukar
import http.server, ssl
# Concatenated private key and certificate.
# Sample openssl comand to generate a self-signed server.pem file:
# openssl req -x509 -sha256 -newkey rsa:2048 -nodes -keyout server.pem -out server.pem -days 365 -subj '/CN=localhost'
CERTFILE="server.pem"
@orip
orip / iterated_hmacsha256.py
Created June 9, 2021 21:14
Test vectors for iterated HMAC-SHA-256 used as a salted hash algorithm with CPU stretching
# Iterated HMAC-SHA-256 password hashing homebrew
# Important: avoid this. Use argon2 or scrypt instead (CPU+mem stretching) or PBKDF2 or bcrypt (just CPU)
def iterated_hmacsha256(password, salt, extra_rounds):
import hmac, hashlib
current = salt
for i in range(1 + extra_rounds): # extra rounds beyond the first
current = hmac.new(key=password, msg=current, digestmod=hashlib.sha256).digest()
return current
# These vectors have been verified with multiple implementations
@orip
orip / Python-3.4.3-macos.patch
Created November 23, 2020 11:22
Patch for Python 3.4.x for macos, based on https://bugs.python.org/issue28676
diff --git a/Python/random.c b/Python/random.c
index 93d300d..396041d 100644
--- a/Python/random.c
+++ b/Python/random.c
@@ -3,6 +3,9 @@
#include <windows.h>
#else
#include <fcntl.h>
+#if defined(HAVE_GETRANDOM) || defined(HAVE_GETENTROPY)
+#include <sys/random.h>