Skip to content

Instantly share code, notes, and snippets.

@orip
orip / wscript
Created September 11, 2019 12:28
waf rule for building golang with modules and vendoring
#!/usr/bin/env python
# encoding: utf-8
# Sample binary target based on golang 1.11+ using modules and vendoring.
#
# To use:
# - Update the go binary path if not in /usr/local/go/bin
# - Remove '-mod=vendor' if not using vendoring
bld.program(
@orip
orip / symlinks_helper.d
Created December 5, 2019 11:12
DLang: does the file a symlink points to exist? ("exists" with dereference")
@orip
orip / salsa20_obfuscator.c
Last active July 17, 2020 02:06
Using salsa20 to obfuscate strings, reference: https://stackoverflow.com/a/59929628/37020
// Relies on https://github.com/alexwebr/salsa20
// To compile and run: place it in a directory with salsa20.c and salsa20.h and run:
// % cc salsa20_obfuscator.c salsa20.c && ./a.out
// Then write strings in stdin. For example:
// % $ echo "Cancel" | ./a.out
// 'Cancel' -> [0x89, 0x88, 0x6a, 0xd1, 0x12, 0xc1]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@orip
orip / Python-3.4.3-macos.patch
Created November 23, 2020 11:21
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>
@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>
@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 / 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 / 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 / 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 / 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