Skip to content

Instantly share code, notes, and snippets.

View emlun's full-sized avatar

Emil Lundberg emlun

View GitHub Profile
@emlun
emlun / pngen.py
Last active October 10, 2017 10:33
#!/usr/bin/python3
# Tiny tool for generating valid but nonsensical PNG images of a given file size.
#
# Usage:
#
# $ python pngen.py SIZE_BYTES
#
# Example:
#
# $ python pngen.py 1024 > output.png
@emlun
emlun / btsync.service
Last active September 23, 2018 00:25
Systemd service definition for user instance of BitTorrent Sync (hopefully systemd 209 compatible)
/usr/lib/systemd/user/btsync.service
------------------------------------
[Unit]
Description=Bittorent Sync service for %u
[Service]
ExecStart=/usr/bin/btsync --config %h/.config/btsync/btsync.conf --nodaemon
Restart=on-abort
[Install]
// Copyright (c) 2018, Yubico AB
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
@emlun
emlun / README.md
Last active July 15, 2019 21:00
Factorio: Speed vs productivity modules visualisation
@emlun
emlun / extension.md
Created October 22, 2018 08:17
Draft: WebAuthn recovery extension

DRAFT: Recovery Credentials Extension (recovery)

This extension allows for recovery credentials to be registered with an RP, which can be used for account recovery in the case of a lost/destroyed main authenticator. This is done by associating one or more backup authenticators with the main authenticator, the latter of which is then able to provide additional credentials for account recovery to the RP without involving the backup authenticators. The mechanism of setting this up is outside of the scope of this extension, however a state counter is defined as follows:

@emlun
emlun / README.md
Last active February 20, 2020 15:19
DRAFT: WebAuthn recovery credentials extension
@emlun
emlun / blueprint.txt
Created June 27, 2020 16:52
Factorio: Marathon red circuits 179.2/s
0eNrsvduOXUmSpvcqBV6OGC0/HwozA/Q0IN30hSAIqItGIsEkIzMDTTKIIFmaUiMfYN5DerF5Eu0dQUYsbndb6//NFjeZjLjp6iQ3zdzNT+a2zD7/j2e/vP54+e7m6u2HZ3/9j2dXL6/fvn/213/7j2fvr357++L18c8+/OPd5bO/Prv6cPnm2fNnb1+8Of7Xi1d/f/H25eWri5dXNy8/Xn149sfzZ1dvX13+92d/9X/89PzZ5dsPVx+uLu9k3f7HP35++/HNL5c3hx/cS3n/4ebF1W+/f7g4/M/rg/B31+8P/+r67VHtQdKF9+H5s3/c/j/pjz+eD5ICLsmVVUnxXtLLjzd/P/RLkNPzZzHx0ONXVzeXL+/+Ok2EJrh5fb11GRfkVgUVsJstCt2sE6EVE9q8IDNMZLZ7mUdhF59m4yCz1n96GJB/yttyO2rJnlYN6R3Wae+kCeNnUuGl4d1G+4JmkYWpqKhZZXNRmhUxl5S/nCAvf39x9VacJhc9PMwTfzpP4kx+USy5eUsr1dLWVlo622R8g1ta20NLN1eK77jcQsgNDpebGLn4sVIDIxdfSdUxcvFlVZhxC/gaK9S44YdQocYNX2mFGreKy6XGDV9vmRo3fL1lZtwivt4yM24RX2+ZGbeIr7fMjFvE11tixi3i6y1R44avt0SNG77eEjVu+HpL1Ljh6y1S44avt8iMW8LXW2TGLeHrLTLjlvD1FplxS/h6C8y4JXy9BWrc8PUWqHHD11ugxg1fb4EaN3y9eWrc8PXmmXHL+HrzzLhlIkzBjFtmghaMXHy9McOWCXeSEUucboxYYrExYuG1Ro0YvNKotsLrjDFsgVcZMwsKvMaYKVsCHkVhxMILjNoPCrzAqO2rwAuM2m0LvMCow6HAC4w6ywq+wqghg5cY5SlUeI1Rjk2FFxnlh1V4lVFuY4VXGeXlVniVUU55hVcZdYeo8CqjrjwVXmXUDa3Cq4y6UFb8IGOGrMGrjLquN3iVUdGFBq8yKhjS4FVGxW4avMq
@emlun
emlun / README.md
Last active February 13, 2022 17:16
Journal filtering skeleton

Journal filtering skeleton

Proof of concept on how one can monkey patch any systemd service and filter its journal output.

By default, systemd services connect the executable's STDOUT to the journal. If the executable doesn't provide a way to configure its output, you're left with redirecting the output somewhere else. And since the options for redirecting systemd services' output are very limited, one of the simplest ways to do it is

@emlun
emlun / asn1-indent.py
Created June 9, 2023 11:23
Indent ASN.1 DER in hex
#!/usr/bin/env python3
import sys
from typing import Tuple
def is_container(value: bytes) -> bool:
return len(value) > 0 and value[0] in {0x30, 0x31}