fixed decrypt from out buf

This commit is contained in:
TLINDEN
2015-08-17 11:17:12 +02:00
parent d2ee10f071
commit d04e5f3baf
2 changed files with 7 additions and 23 deletions

20
TODO
View File

@@ -1,23 +1,3 @@
[15.Aug 14:29:22] --- [~/pcp/tests] ---
% pcp1 -K key-alicia-pub
Could not open input file <20>fz
Error: No such file or directory
*** Error in `pcp1': double free or corruption (top): 0x000000000208e460 ***
Aborted
% tests/sample
hh: 56
Alice encrypted 11 bytes for Bob:
Pcpstreamoutbuf (0160): 05000000017842cd4e82f2ec585398765a2d0439197f5ce67984b22c4aa3d0f649929b21
2d6d4b32538ce61e0cb3ed3a3f546fd214ece9c026febeb4f59c92338ab8d89496bb35a1
a685abe4230101c0c69116fe04d552325c6722f2991df47631496253e8c6f27310e94852
76c71f9f4cae4f22eb8f3e87b1898ff32131d88b19000000000000000000000000000000
00000000000000000000000000000000
Error: input file corrupted, incomplete or no recipients (got 53, exp 72)
Error: Invalid argument
*** Error in `tests/sample': double free or corruption (!prev): 0x0000000001893a30 ***
Aborted
If with -k passphrase has been retrieved interactively, ask If with -k passphrase has been retrieved interactively, ask

View File

@@ -4,7 +4,7 @@ int main() {
Buffer *inbuf; Buffer *inbuf;
pcp_key_t *alice, *bob; pcp_key_t *alice, *bob;
pcp_pubkey_t *alicepub, *bobpub, *pubhash; pcp_pubkey_t *alicepub, *bobpub, *pubhash;
Pcpstream *clear_in, *crypt_out, *clear_out; Pcpstream *clear_in, *crypt_out, *clear_out, *crypt_in;
PCPCTX *ptx; PCPCTX *ptx;
char message[] = "hello world"; char message[] = "hello world";
@@ -47,15 +47,18 @@ int main() {
/* prepare the output buffer stream */ /* prepare the output buffer stream */
clear_out = ps_new_outbuffer(); clear_out = ps_new_outbuffer();
/* input buffer stream from crypto output */
crypt_in = ps_new_inbuffer(ps_buffer(crypt_out));
/* in order for the decryptor find the senders public key, /* in order for the decryptor find the senders public key,
we need to put it into the context hash. this step can be we need to put it into the context hash. this step can be
omitted when using a Vault. */ omitted when using a Vault. */
pcphash_add(ptx, alicepub, alicepub->type); pcphash_add(ptx, alicepub, alicepub->type);
buffer_info(crypt_out->b); buffer_info(crypt_in->b);
/* try to decrypt the message */ /* try to decrypt the message */
if(pcp_decrypt_stream(ptx, crypt_out, clear_out, bob, NULL, 0, 0) == 0) if(pcp_decrypt_stream(ptx, crypt_in, clear_out, bob, NULL, 0, 0) == 0)
fatals_ifany(ptx); fatals_ifany(ptx);
else { else {
/* and finally print out the decrypted message */ /* and finally print out the decrypted message */
@@ -64,6 +67,7 @@ int main() {
} }
ps_close(clear_in); ps_close(clear_in);
ps_close(crypt_in);
ps_close(crypt_out); ps_close(crypt_out);
ps_close(clear_out); ps_close(clear_out);