pcp/pbp compatibility progress

It's getting better and better. Not only do I have some very nice and secure sign+crypt functionality in PCP, but public key export and import from pcp to pbp and vice versa works now finally. From pbp issue#10:

PBP => PCP:

$ pbp -b . -x --self Tom > tom.pbp 
Passphrase for decrypting master key for Tom: 

$ pcp1 -V vx -P -I tom.pbp -b
key 0x61E05C2AA4803742 added to vx.

 $ pcp1 -V vx -l              
Key ID               Type      Creation Time        Owner
0x61E05C2AA4803742    public   2014-02-06T07:31:00  Tom <>

PCP => PBP:

$ pcp1 -V va -b -p -O alice.pbp   
Enter passphrase to decrypt your secret key for signing the export: 
public key exported in PBP format.

$ pbp -b . -X -i alice.pbp 
Success: imported public keys for Alice

$ pbp -b .  -l
invalid 9163 3781 9b14 ea5b 010b 7487 61fd dd46 Alice
valid 9275 5a5d 5375 bb49 d096 e0c5 1261 a575 Bob

Pure happyness!

One drawback does it have though: public key crypto doesn't work yet. I suspect the recipient list computing is incompatible since symetric crypto already works. At least pcp says that it cannot find a matching public key. And the other direction doesn't work too. But that's the smallest of all possible problems.

Update 2014-02-06:

And. Now. Finally.

# bob exports his pk
bobby@io: % pbp -x --self Bob > bob.pbp
Passphrase for decrypting master key for Bob: 

# alice exports her pk
alicia@io: % pcp -p -b -O alice.pbp
Enter passphrase to decrypt your secret key for signing the export: 
public key exported in PBP format.

# bob imports alice' pk
bobby@io: % pbp -X -i alice.pbp 
Success: imported public keys for Alicia

bobby@io: % pbp -l
valid b888 026a 38e2 cdf7 f0a6 6486 63a5 0fea Bob
invalid ed32 1935 0310 fe6f 35c6 b44d be6b 3ca8 Alicia   [1]


# alice imports bobs pk
alicia@io: % pcp -P -I bob.pbp -b
key 0x87358A0988953A67 added to ~/.pcpvault.

alicia@io: % pcp -l
Key ID               Type      Creation Time        Owner
0xB497AFF45654CD98   primary   2014-02-06T19:58:09  Alicia <>
0x87358A0988953A67    public   2014-02-06T18:58:02  bob <>

# bob encrypts to alice
bobby@io: % echo "HALLO ALICE, KNUTSCHI" > msg
bobby@io: % pbp -c -i msg -o encrypted -r Alicia -S Bob
Passphrase for decrypting encryption subkey for Bob:

# alice decrypts it
alicia@io: % pcp -d -I encrypted 
Enter passphrase to decrypt your secret key: 
HALLO ALICE, KNUTSCHI
Decrypted 22 bytes successfully

# other way around, alice encrypts to bob
alicia@io: % echo "ACH, SCHNUCKI" | pcp -e -O encrypted -r Bob
Enter passphrase to decrypt your secret key: 
Encrypted 164 bytes for:
bob <>

# and bob decrypts it
bobby@io: % pbp -d -i encrypted -S Bob
Passphrase for decrypting encryption subkey for Bob: 
ACH, SCHNUCKI
good message from Alicia

06 February 2014 | #source

 

Garnelen Fotos

Heute sind mir zur Abwechslung mal zwei Garnelenfotos gelungen, die waren gerade am Zucchinifuttern. Irgendwie ist das echt schwierig, die scharf aufs Foto zu kriegen...

2014-02-05 - Und der ganze Haufen:

2014-02-05 - Baby alleine:

2014-02-05 - Mama mit Kind:

Update 2014-02-05:

Und ein Video hab ich auch noch gemacht, da sieht man die komischerweise besser:</p><p>

05 February 2014 | #aquarium

 

Heute gabs mal Pizza zur Abwechslung

2014-01-21 - Piiizza:

21 January 2014 | #geschwätz

 

Python CFFI Scheisse

Heute wollte ich mir pbp installieren, um im Zug mit dem pcp Umbau anzufangen. Tja, aber Stef verwendet CFFI für das C-Interface. Ich ich muss sagen, als alter Perlmacker ist mir noch nie etwas beschisseneres untergekommen, als dieses CFFI. Ich habe pysodium und pbp vorschriftsmässig installiert mit:

python setup.py build
sudo python setup.py install

Und weder beim Build, noch beim install kamen irgendwelche Fehlermeldungen. Was mich verwundert hat, da die meisten Sourcen heutzutage arg linuxlastig sind und /usr/local in deren Welt nicht vorkommt. Und dort ist die libsodium bei mir installiert.

Tja, und dann habe ich einfach mal das Kommando pbp ausgeführt. Und was kam da? Compilerfehler! Zur Laufzeit, NACHDEM ich alles installiert hatte! Ich hab bei Stef einen Bug eröffnet, aber ich befürchte, da wird er auch nix machen können. Ich hab dann ein wenig herumgegoogelt, und was steht da in der CFFI Doku?

[..]but so far require a C compiler at runtime. (We plan to improve with caching and a way to distribute the compiled code.)

WTF?!

Ich meine, sowas kann man doch nicht machen, dass der Enduser bereits installierte Module noch compilieren muss. Was da alles schiefgehen kann, sieht man ja an meinem Bug. Und als ob das nicht schon schlimm genug wäre, ignoriert CFFI irgendwelche übergebenen CFLAGS oder LDFLAGS, und zwar sowohl während dem Installieren, als auch zur Laufzeit.

So eine Scheisse. Sowas geht gar nicht.

Dann habe ich noch festgestellt, wenn ich pbp aufrufe und die ganzen Compilerfehler kommen, dass es danach im aktuellen Verzeichnis ein neues Unterverzeichnis gibt: build/bdist.freebsd-9.0-RELEASE-p3-amd64/egg/pysodium/__pycache__/. Selbst, wenn der runtime-Build funktioniert hätte, wenn ich dieses Verzeichnis löschen würde, würde CFFI es erneut erstellen und den ganzen Kram erneut compilieren.

Nee. Das ist umso bescheuerter, als es ja durchaus schon lange Methoden gibt, Python-Code mit binären Libraries zu verheiraten.

19 January 2014 | #source

 

Es hat wieder eine Elritze erwischt

Seit vorgestern war wieder eine meiner Rainbow Shiner krank, anscheinend was mit der Schwimmblase. Sie ist schräg nach oben immer unter der Wasseroberfläche geschwommen. Irgendwie hab ich bei denen sowas alle paar Monate. Heute habe ich dann entdeckt, dass sie während sie so geschwächt war, anscheinend angefressen worden ist. Furchtbar, ich hab sie von ihrem Leiden erlöst.

2014-01-18 - Rainbow Shiner angefressen:

18 January 2014 | #aquarium