Skip to content

Instantly share code, notes, and snippets.

@irq0
irq0 / rgw_sse_s3_kmip.md
Last active September 16, 2025 14:10
Proposal: KMIP Backend for SSE-S3

Proposal: KMIP Backend for SSE-S3

This document proposes adding support for the Key Management Interoperability Protocol (KMIP) as a backend for RGW's Server-Side Encryption with S3-Managed Keys (SSE-S3).

This feature will mirror the functionality of the existing HashiCorp Vault Transit backend, allowing a KMIP server to manage bucket-level Key Encryption Keys (KEKs) while RGW manages the creation and lifecycle of per-object Data Encryption Keys (DEKs).

set -g status-bg colour253
# ???
#set -g window-status-activity-attr bold
#set -g pane-border-fg colour245
#set -g pane-active-border-fg colour39
#set -g message-fg colour16
#set -g message-bg colour221
#set -g message-attr bold
set -g set-titles on
@irq0
irq0 / .clang-format
Last active March 14, 2023 15:48
ceph clang-format
---
Language: Cpp
# BasedOnStyle: Google
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveMacros: None
AlignConsecutiveAssignments: None
AlignConsecutiveBitFields: None
AlignConsecutiveDeclarations: None
@irq0
irq0 / dirtree_bench.py
Created July 27, 2022 11:54
Benchmark random id -> directory tree mappings
#!/usr/bin/env python3
# Benchmark random id -> directory tree mappings
import uuid
import pathlib
import re
import random
import click
import multiprocessing
import time
#!/usr/bin/env python
import requests
import sys
req = requests.get("https://www.eventphone.de/guru2/phonebook?event=Chaos+Communication+Camp+2015&s={}&installedonly=0&format=json".format(sys.argv[1]), verify=False)
if req.ok:
print req.json()[0]["name"]
@irq0
irq0 / logstash.conf
Created October 28, 2014 11:25
logstash config - extract data from ceph logs
input {
gelf {
port => 12222
type => gelf
codec => json { }
}
}
filter {
if [type] == "gelf" {
@irq0
irq0 / attach_image.py
Last active August 29, 2015 14:05
rss2email post-processor: Attach images
import re
import requests
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
URL_REGEX = re.compile(r"""((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.‌​][a-z]{2,4}/)(?:[^\s()<>]+|(([^\s()<>]+|(([^\s()<>]+)))*))+(?:(([^\s()<>]+|(‌​([^\s()<>]+)))*)|[^\s`!()[]{};:'".,<>?«»“”‘’]))""", re.DOTALL)
def fetch_img(url):
result = None
@irq0
irq0 / gist:c176fbdd0c3889c16093
Created July 31, 2014 15:16
.lein/profiles.clj
{:user {:plugins [[lein-ancient "0.5.5"]
[lein-ritz "0.7.0"]]
:repl-options {:nrepl-middleware [io.aviso.nrepl/pretty-middleware
cider.nrepl.middleware.inspect/wrap-inspect
cider.nrepl.middleware.classpath/wrap-classpath
cider.nrepl.middleware.complete/wrap-complete
cider.nrepl.middleware.info/wrap-info
cider.nrepl.middleware.inspect/wrap-inspect
cider.nrepl.middleware.macroexpand/wrap-macroexpand
*.xml diff=xml
*.png diff=exif
*.xml2 diff=xml
#!/bin/bash
URL="http://doxieflashair.local"
DIRS="/DCIM/100DOXIE"
list () {
curl -s "${URL}/command.cgi?op=100&DIR=${1}" \
| awk 'BEGIN { FS=","; OFS="/" } /.+,(.+,){3}/ { print $1,$2 }'
}