Skip to content

Instantly share code, notes, and snippets.

I wasn't first to get the key. Nor was I second, third, or even fourth. I'm probably not even the
10th to get it (ok, looks like I was the 7th.) But I'm happy that I was able to prove to myself
that I too could do it.
First, I have to admit I was a skeptic. Like the handful of other dissenters, I had initially
believed that it would be highly improbable under normal conditions to obtain the private key
through exploiting Heartbleed. So this was my motivation for participating in Cloudflare's
challenge. I had extracted a lot of other things with Heartbleed, but I hadn't actually set out to
extract private keys. So I wanted to see first-hand if it was possible or not.
#include <cassert>
#include <iostream>
template<typename T, typename R=void>
struct ExtMethod {
ExtMethod& operator - () {
return *this;
}
template<typename U>
@sehe
sehe / submodule.sh
Created September 10, 2011 14:54
Git is_submodule function
#!/bin/bash
cat >> /dev/null <<"HERE"
Looking good. There is a bug in
for line in $submodules; do cd "$parent_git/$line"; \
if [[ `pwd` = $_git_dir ]]; then return 0; fi; \
done
because it won't cd back (so it would only work if the first submodule
@sehe
sehe / Makefile
Created March 21, 2012 20:22 — forked from klmr/mini.cpp
Ambiguous function call grammar
all:mini alternative
CPPFLAGS+=-std=c++0x
CPPFLAGS+=-g -O0
%.o:%.cpp
g++ $(CPPFLAGS) $^ -o $@ $(LDFLAGS)
@sehe
sehe / server.c
Created July 25, 2012 01:19 — forked from minitech/server.c
My prototype webserver-thing
#include "xeric-utils.h"
/* The main method. */
int main(int argc, char * argv[]) {
int i;
int port = 80;
struct in_addr address = {0};
/* Parse the arguments: */
for(i = 1; i < argc; i++) {
#include <type_info>
#include <memory>
#include <string>
#include <stdexcept>
class bad_mangled_name : public std::runtime_error {
public:
bad_mangled_name() : std::runtime_error{"bad name"} {}
};
@sehe
sehe / SetJekyllPostSyntax.vim
Last active December 13, 2015 19:59 — forked from rmartinho/SetJekyllPostSyntax.vim
SetJekyllPostSyntax
" Sets up multi-language syntax for Jekyll blog posts
fun! SetJekyllPostSyntax()
" Bring in YAML syntax for front matter
unlet b:current_syntax
syntax include @Yaml syntax/yaml.vim
syntax region yamlFrontmatter start=/\%^---$/ end=/^---$/ keepend contains=@Yaml
" Bring in C++11 syntax for code snippets
unlet b:current_syntax
syntax include @Cpp syntax/cpp11.vim
@sehe
sehe / gist:4994490
Last active December 13, 2015 23:49
private T ParseOneOf<T>(params Func<T>[] fs) {
var oldLexer = Lexer.Clone();
foreach (var f in fs) {
try {
return f();
} catch (SyntaxErrorException) {
Lexer = oldLexer;
}
}
throw new SyntaxErrorException();
#include <string>
#include <iostream>
namespace dessert {
template <typename Tag>
struct not_quite_the_same_traits : std::char_traits<char> {};
template <typename Tag>
using strong_string_alias = std::basic_string<char, not_quite_the_same_traits<Tag>>;
using vanilla_string = std::string;
/* CallgrindParser
Copyright (C) 2013 BlackBerry.
Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following: