Skip to main content


Showing posts from 2014

Analyzing public OpenPGP keys

OpenPGP Message Format ( RFC 4880 ) well defines key structure and wire formats (openpgp packets). Thus when I looked for public key network (SKS) server setup, I quickly found pointers to dump files in said format for bootstrapping a key server. I did not feel like experimenting with Python and instead opted for Go and found  library that has comprehensive support for parsing openpgp low level structures. I've downloaded the SKS dump, verified it's MD5SUM hashes (lolz), and went ahead to process them in Go. With help from  and database/sql, I've written a small program to churn through all the dump files, filter for primary RSA keys (not subkeys) and inject them into a database table. The things that I have chosen to inject are fingerprint, N, E. N & E are the modulus of the RSA key pair and the public exponent. Together they form a public part of an RSA keypair. So far, nothing fancy. Ne

What is net neutrality?

Sorry, the web page you have requested is not available through your internet connection. We have received an order from the Courts requiring us to prevent access to this site in order to help protect against Lex Julia Majestatis infridgement. If you are a home broadband customer, for more information on why certain web pages are blocked, please click  here . If you are a business customer, or are trying to view this page through your company's internet connection, please click  here . ∞

Hacking on launchpadlib

So here is a quick sample of my progress playing around with launchpadlib using lp-shell from lptools: In [1]: lp Out[1]: <launchpadlib.launchpad.Launchpad at 0x7f49ecc649b0> In [2]: lp.distributions Out[2]: <launchpadlib.launchpad.DistributionSet at 0x7f49ddf0e630> In [3]: lp.distributions['ubuntu'] Out[3]: <distribution at> In [4]: lp.distributions['ubuntu'].display_name Out[4]: 'Ubuntu' In [5]: lp.distributions['ubuntu'].summary Out[5]: 'Ubuntu is a complete Linux-based operating system, freely available with both community and professional support.' In [7]: import sys; print(sys.version) 3.4.1 (default, Jun 9 2014, 17:34:49) [GCC 4.8.3] There is not much yet, but it's a start. python3 port of launchpadlib is coming soon. It has been attempted a few times before and I am leveraging that work. Porting this stack has proven to be the most difficult python3 port I have ever don

cross-compile go code, including cgo

By all means cross-compiling a new language/stack is not going to be pretty, but it didn't turn out that bad. A few weeks back, I was told that go code which uses cgo (that is utilising C api calls to shared libraries exporting C interface) cannot be cross-compiled. Well, if it's just calling out a C compiler it should totally be easy to cross compile, since so much of our platform is. So there we go, first I've picked a moderately small project which only does a couple cgo calls, and check that it compiles correctly: $ sudo apt-get build-dep ubuntu-push-client $ go get $ cd $GOPATH/src/ $ go build ubuntu-push-client.go Well, when your gcc is all is easy. I didn't want to polute my system, so I quickly created a chroot with go, build-dependencies in armhf architectures and cross-compiler: # Get a chroot with build-dependencies installed, I am basing on top of a click-chroot # one should be able to use

X4D Icons released

I am releasing some icons under MIT license. They will be hosted at and available for development on GitHub . I had to create my own icons, as I couldn't find icons of similar nature under a free license. Hopefully others will find these useful as well. The icons below are all available in PNG , GIF , SVG and EPS. To link to a specific version directly, add .png , .gif , -v.svg or -v.eps to the generic URI (or browse the icons repository to see all versions ). Document type Light Dark HTML 2.0 HTML 3.2 HTML 4.0 HTML 4.01 XHTML 1.0 XHTML 1.1

Debian 9.0 code name announced - Zurg!

It really does have a good ring to it, and lovely strong brand image! I like it =) Zurg - Debian 9.0 code name