key++: normalize id and lc() allow signing using an alternate secret key, like in pcpdecrypt() malloc() new pointers in functions only if not NULL, e.g. pcp_gennonce() generalize file i/0, open+close only in src/, print msg if using stdin or stdout put the key import and export stuff into the lib, support from/to file and string check pub key count in pcp.c before calling verify signature, croak if count==0 Implement pbp crypto fix https://github.com/stef/pbp/commit/7d7b7c9ecb7604ad22938f5b68a624093a417bfa move remaining Export+Import stuff from src => lib. Update pubimport to new format Update secret im+ex-port to new format. Update pod key format spec. -l show keysig, if any vault checksum: add keysigs as well keysig: fix struct to be even (i.e. type => uint16_t or something) OR add a keysig2blob function Python binding, e.g.: py % cdll.LoadLibrary("libsodium.so.8") py % nacl = CDLL("libsodium.so.8") py % hash = create_string_buffer('\000' * 64) py % hash py % hash.raw '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' py % key = create_string_buffer('a' * 32) py % nacl.crypto_hash_sha256(pointer(hash), pointer(key), 32) 0 py % hash.raw ';\xa3\xf5\xf4;\x92`&\x83\xc1\x9a\xeeb\xa2\x03B\xb0\x84\xddYq\xdd\xd38\x08\xd8\x1a2\x88y\xa5G\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' py %