Information technology / computer programming

Bash

sudox

sudox (sudo for X) is a bash script
that executes commands under X in UNIX and LINUX as an arbitrary user
with sudo. It provides the necessary privileges using xauth over a
pipe. I use it for example to execute firefox as a different user
with low privileges. Maybe you use sux allready. So what sux is to
su, sudox is to sudo.

secbak, secrest

secbak and
secrest are scripts for use with afio
a cpio replacement. The scripts implement incremental multi-volume
backups and restore. Unlike with tar, files are compressed
individually and can be optionally encrypted.

Publish only PUBLIC marked subtrees

publish_only_PUBLIC_subtrees.sh
is a bash script that reconstructs parts of a UNIX or LINUX directory tree
with symbolic links. I use it in order to publish automatically selected
parts of my hard disk on a web server. Only files and directories within
folders named PUBLIC are published.

lnr -s

lnr -s is a bash script which
creates symbolic links with the same syntax as the UNIX command
ln -s. Unlike ln -s it searches the shortest relative path
between the source and destination and creates the link with a relative
path. Most of the time symbolic links are very short in distance and
used mainly to reduce redundancy. The advantage of relative symbolic
links is that whole branches can be moved without breaking
links. If you do so, please make sure that branch you want to move
does not does not contain relative links pointing outside the moving
branch.

Bitcoin

C / C++

grpn

My enhanced version of Paul Wilkins
RPN calculator:. grpn is a graphical
reverse polish notation (RPN) calculator which handles real numbers,
complex numbers, matrices, and complex matrices. This version of
grpn adds
engineering notation, the remainder function (mod) and can decompose
complex numbers. Results can be copied to the clipboard and used
elsewhere. See
screen-shot
and
changelog
for details. Here you can find a
patch against the
last version grpn-1.1.2.tar.gz from the author Paul Wilkins.

BlueJ
CNPI edition
is a fork of the unchanged
BlueJ Sources
especially configured to fit our class room needs.
This version requires Java 7!
The main differences between the original and this distribution:

Support for netbeans-swing applications:
Open, compile and execute Netbeans-Projects directly:

General support of UTF-8 and usage of utf8 in writing and
reading files for all supported operating systems.

Networking

getreu.net server support for IPv6

The http://getreu.net web-server supports the
Internet Protocol version 6 (IPv6).
In order to access this site via IPv6 your operating system and Internet Service
Provider must also support IPv6. You can test this precondition
here. Having 10/10 points your IPv6 connection
works fine. It depends on your system settings if IPv4 or
IPv6 is used by default. The firefox addon
IP6 or not
shows your current connection type.

IPv6 only networks are easy and secure.
Address Family Translation (AFT)
allows a gradual migration to IPv6 by providing seamless
Internet experience to greenfiled IPv6-only users, accessing IPv4
Internet services. Learn about NAT64 gateway technology with this
Cisco article.
Some commercial products like Cisco ASR 1000 Series router run NAT64.
Andrea Dainese published a step by step manual how to Connect an IPv6 only site to an IPv4 only world
using the Rasperry PI and OSS to implement a NAT64 gateway.

Access your home server without router configuration

Accessing your home server from outside your local network is usually done by
forwarding a port of your server through the router. This solution is different:
no router access is needed.

Connect-Linux-to-Restena-VPN-howto-2 is
a German step by step manual for Linux users to connect to the Restena
Virtual Private Network (VPN). It is only useful for Restena members who
are living outside of Luxembourg and want to use the fichier élèves
application. The obsolete Version 1 of this document in French is still
available here.

Linux Luxtrust

A short manual explaining the installation of the Luxembourgian
Luxtrust
Signing Stick on Ubuntu 09.10 Karmic Koala. It has been reported that
it also covers Ubuntu 10.04 (lucid).

Set up an encrypted NAS on Oroid-C2 or Rasbperry 3 with OpenMediaVault

This note explains how to set up a cheap Raid 1 NAS with an Odroid or
Rasbperry board and two USB-harddisks using OpenMediaVault. Only very cheap
and largely available hardware components are used. When very high
availability is required it is recommended to hold available a second
Oroid/Rasbperry board with a mirrored SD-card containing the NAS operating
system. In this way the system has no single point of failure.
Encrypted
Raid 1 NAS with Odroid-C2 or Rasbperry(pdf).

Patches

Python

ASN.1 tiny decoder

ASN.1 tiny decoder
is a simple and fast ASN.1 decoder without external libraries designed
to parse large files.

There is a good
“Pyasn1” ASN.1 python library
out there. It is quite complete, but learning how to use it is very time
consuming. Furthermore Pyasn1 is not designed to parse large files.
This why I wrote this tiny ASN.1 decoder. It’s design goal was
to be as fast as possible (with Python). Download
asn1tinydecoder.py here.

Rust lang

The algorithms are implemented as described on wikipedia. Please find
conrete links and pseudocode samples in the source code.

Disclaimer

This code was written for pedagogical purposes only. Do not use it
for any serious security requirements!

ASCII Art Hangman for kids

asciiart-hangman-for-kids.rs
is a guessing game for two or more players. One player thinks of a word, phrase
or sentence and the other tries to guess it by suggesting letters or numbers,
within a certain number of guesses. In this version for children the computer
selects a word, phrase or sentence randomly out of a word-list defined in a
customisable word-list. In the course of the game Ascii-Art images - designed
for children - are progressively disclosed (see
documentation,
pdf).
The source code is hosted on
GitHub

Enhance Embedded System Security With Rust

Article: Enhance Embedded System Security With Rust: Case Study of Heartbleed:
Real-time embedded systems have to meet a combination of requirements
that are in deep tension: they are expected to deliver timely results, observing
strict deadlines, all using only very limited resources, computing power and
energy. To this day, the most common programming language in this environment is
C/C++ because of its zero-cost abstractions and fine control over
memory layout. With the upcoming communication ability through network
interfaces, an additional requirement gained in importance: security.
Unfortunately, C/C++ supports some secure software design principles
only rudimentary. Too many very severe vulnerabilities are directly related to
the fact that C/C++ does not guarantee memory safety. To exemplify
this, the prominent Heartbleed vulnerability is discussed in terms of causes,
technical details and impact
(html),
(pdf).
(slides).

Stringsext

Stringsext
is a Unicode enhancement of the GNU strings tool with additional
functionalities: stringsext recognizes Cyrillic, CJKV characters and other
scripts in all supported multi-byte-encodings, while GNU strings fails in
finding any of these scripts in UTF-16 and many other encodings
(html).

Master Thesis:
Forensic-Tool Development with Rust.
Within the framework of this study the suitability of the Rust ecosystem for
forensic tool development was evaluated. As case study, the tool Strings­ext was
developed. Starting from analysing the specific requirements of forensic
software in general and those of the present case study, all stages of the
software development life-cycle have been executed, up to the first production
release. Strings­ext is a reimplementation and enhancement of the GNU-strings
tool, a widely used program in forensic investigations. Strings­ext recognizes
Cyrillic, CJKV characters and other scripts in all supported
multi-byte-encodings while GNU-strings fails in finding these in UTF-16 and
other encodings.+
During the case study it has become apparent that the Rust ecosystem provides
good support for secure coding principles and unit testing. Furthermore, the
benchmarks showed a satisfactory performance of the resulting Strings­ext
binaries comparable to the original C version.
(book html),
(book pdf),
(slides html),
(slides pdf).

Oscilloscope screenshot generator
is a collection of gnuplot-scripts to generate oscilloscope
screen
shots with one, two ore 3 sinus functions. The scripts generate .fig
vector graphics for further editing with the drawing program dia.

Student pages

Society

Crime Economy and Bitcoin

Mitigate the devastating effects of crime economy through eradicating
Bitcoin
This note first analysis the preconditions for a successful regulation policy
on new information technologies. We explain how the new crime economy, based
on anonymous division of labour, works. By going back in history we understand
that controlling the money flow is the key to mitigate organized crime.
Applied to our generation the author argues, that the most efficient way to
fight against this new age of crime economy is to eradicate Bitcoin by
prohibiting mining.
(html),
(pdf).

Disclaimer of liability

The material, programs and information contained on this website are for
general information purposes only. You should not rely upon the material
or information on the website as a basis for making any business, legal
or any other decisions. Whilst I endeavour to keep the information up to
date and correct, I make no representations or warranties of any kind,
express or implied about the completeness, accuracy, reliability,
suitability or availability with respect to the website or the
information, products, services or related graphics contained on the
website for any purpose. Any reliance you place on such material is
therefore strictly at your own risk. I will not be liable for any
false, inaccurate, inappropriate or incomplete information presented on
the website.

Note that there is a very picky spam filter so there is no guarantee
that your email will reach me.

1. Rabîndranâth Tagore: L’Offrande lyrique.Because I love this life, I will love death as much. I first saw this epitaph on grave near a chapel in Clairfontaine Belgium. The grave has been taken away many years ago but the words remained in my mind.