Skip to content

Instantly share code, notes, and snippets.

Head in yesterday. Hands in today. Heart in tomorrow.

Dustin Oprea dsoprea

Head in yesterday. Hands in today. Heart in tomorrow.
View GitHub Profile
dsoprea /
Created Apr 1, 2022
Replace tokens into YAML during load
import string
import yaml
def load_yaml(f, context=None):
if context is None:
context = {}
def string_constructor(loader, node):
dsoprea / ssl_nonblocking_client.c
Created Jan 24, 2019
Non-Blocking SSL Client
View ssl_nonblocking_client.c
// Name : SSLClient.cpp
// Compiling : g++ -c -o SSLClient.o SSLClient.cpp
// g++ -o SSLClient SSLClient.o -lssl -lcrypto
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <openssl/ssl.h>
dsoprea / ssl_server_nonblock.c
Created Jan 24, 2019 — forked from darrenjs/ssl_server_nonblock.c
OpenSSL example using memory BIO with non-blocking socket IO
View ssl_server_nonblock.c
This file had now been added to the git repo
... which also includes a non blocking client example.
ssl_server_nonblock.c -- Copyright 2017 Darren Smith -- MIT license
dsoprea /
Last active Jun 23, 2018
LDAP Lookups Against Active Directory with Python
import logging
import ldap
import collections
# Install:
# apt: libsasl2-dev
# pip: python-ldap
dsoprea /
Created May 22, 2018
Tool to recursively strip all extended characters from all non-hidden files
#!/usr/bin/env python3
import sys
import os
import argparse
import shutil
_DESCRIPTION = "Strip extended characters from all non-hidden files in a path."
def _get_args():
dsoprea /
Created May 4, 2018
Script to squash the last Git commit
#!/bin/bash -e
HEAD_COMMIT_MESSAGE=$(git log --format=%B -1 HEAD)
# For safety. Our use-case is usually to always just squash into a commit
# that's associated with an active change. We really don't want lose our head
# and accidentally squash something that wasn't intended to be squashed.
if [[ "${HEAD_COMMIT_MESSAGE}" != SQUASH* ]]; then
echo "SQUASH: Commit to be squashed should have 'SQUASH' as its commit-message."
exit 1
dsoprea /
Last active Nov 29, 2016
Resolve a Go import path to the actual URL that hosts that package
#!/usr/bin/env python3.5
A simple module to resolve a Go import path to the actual URL that hosts that
package. Sometimes these are not equal and you mustload one URL (and zero or
more redirects) until we encounter a meta tag that specifies the true import
- requests
- beautifulsoup4
dsoprea / mssql_encryption_backup_restore_encrypt_test.sql
Last active May 28, 2020
SQL Server: Backup and Restore Credentials, and Test Encryption
View mssql_encryption_backup_restore_encrypt_test.sql
-- To run this script more than once, make sure to delete c:\temp\test.dmk,
-- c:\temp\test.smk, c:\temp\test.crt, and c:\temp\test.crt.key .
DECLARE @ExpectedSignature VARBINARY(8000);
DECLARE @ActualSignature VARBINARY(8000);
DECLARE @Encrypted VARBINARY(8000);
DECLARE @Decrypted VARBINARY(8000);
DECLARE @TestString VARCHAR(100) = 'protected string';
dsoprea / Program.cs
Last active Oct 17, 2016
C# code for the properties that can retrieve the version embedded in the executable:
View Program.cs
class Program
private string executableVersion = null;
private string ExecutableVersion
if (executableVersion == null)
dsoprea / build.targets
Last active Oct 17, 2016
build.targets file for injecting version from a text-file to the AssemblyInfo.cs file:
View build.targets
<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="12.0" xmlns="">
<!-- Inject a version from a text-file into AssemblyVersion.cs . We do this
so that it's easier for the application to know its own version [by
reading the text file].
<Import Project="$(ProjectDir)..\packages\MSBuildTasks.\tools\MSBuild.Community.Tasks.Targets" />
<Target Name="InjectVersion" BeforeTargets="BeforeBuild">
<!-- Read the version from our text file. This appears to automatically