aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Tim Segers <tsegers@pm.me>2025-12-07 19:37:21 +0100
committerGravatar Tim Segers <tsegers@pm.me>2025-12-07 19:37:21 +0100
commit6b2edf74e4005a194546356c2141b7f09e013ca3 (patch)
treec5251e6692f1b95d3dab60552dd72b033142e0c1 /src
parenta039778b4e979a391bb468a20f2d2177211c056c (diff)
downloadtweetpipe-6b2edf74e4005a194546356c2141b7f09e013ca3.tar.gz
Reformat with clang-format
Diffstat (limited to 'src')
-rw-r--r--src/tweetpipe.c56
1 files changed, 35 insertions, 21 deletions
diff --git a/src/tweetpipe.c b/src/tweetpipe.c
index b74bbaf..e369f70 100644
--- a/src/tweetpipe.c
+++ b/src/tweetpipe.c
@@ -53,7 +53,8 @@ derive_key(Context *ctx, char *password, size_t password_len)
if (ctx->has_key) {
die(0, "A single key is enough");
}
- if (crypto_pwhash(ctx->key, sizeof ctx->key, (unsigned char *) password, password_len, master_key, PWHASH_OPSLIMIT) != 0) {
+ if (crypto_pwhash(ctx->key, sizeof ctx->key, (unsigned char *) password, password_len,
+ master_key, PWHASH_OPSLIMIT) != 0) {
die(0, "Password hashing failed");
}
memzero(password, password_len);
@@ -65,15 +66,18 @@ stream_encrypt(Context *ctx)
{
unsigned char *const chunk_size_p = ctx->buf;
unsigned char *const chunk_nonce = chunk_size_p + 4;
- unsigned char *const chunk_base = chunk_nonce + crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES;
- unsigned char *const chunk_msg = chunk_base + crypto_secretbox_ZEROBYTES;
- unsigned char nonce[crypto_secretbox_NONCEBYTES];
+ unsigned char *const chunk_base =
+ chunk_nonce + crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES;
+ unsigned char *const chunk_msg = chunk_base + crypto_secretbox_ZEROBYTES;
+ unsigned char nonce[crypto_secretbox_NONCEBYTES];
uint64_t chunk_id;
ssize_t max_chunk_size;
ssize_t chunk_size;
- assert(ctx->sizeof_buf >= 4 + crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES + crypto_secretbox_ZEROBYTES);
- max_chunk_size = ctx->sizeof_buf - 4 - crypto_secretbox_NONCEBYTES + crypto_secretbox_BOXZEROBYTES - crypto_secretbox_ZEROBYTES;
+ assert(ctx->sizeof_buf >= 4 + crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES +
+ crypto_secretbox_ZEROBYTES);
+ max_chunk_size = ctx->sizeof_buf - 4 - crypto_secretbox_NONCEBYTES +
+ crypto_secretbox_BOXZEROBYTES - crypto_secretbox_ZEROBYTES;
assert(max_chunk_size <= 0x7fffffff);
chunk_id = 0;
/*
@@ -83,7 +87,7 @@ stream_encrypt(Context *ctx)
* M: Message
* C: Ciphertext
* N: Nonce
- *
+ *
* load message and chunk_size into buffer:
*
* +- chunk_size_p
@@ -102,30 +106,33 @@ stream_encrypt(Context *ctx)
*/
while ((chunk_size = safe_read_partial(ctx->fd_in, chunk_msg, max_chunk_size)) >= 0) {
STORE32_LE(chunk_size_p, (uint32_t) chunk_size);
- memzero(chunk_nonce, crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES + crypto_secretbox_ZEROBYTES);
+ memzero(chunk_nonce, crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES +
+ crypto_secretbox_ZEROBYTES);
randombytes(nonce, crypto_secretbox_NONCEBYTES);
/*
* encrypt with crypto_secretbox()
- *
+ *
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
* |LLL|???????|000000000000000|CCCCCCCCCCCCCCC|CCCCCCCCCCCCCCCCCC
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
* | 4 | 8 | 16 | 16 | chunk_size
*/
- if (crypto_secretbox(chunk_base, chunk_base, chunk_size + crypto_secretbox_ZEROBYTES, nonce, ctx->key) !=
- 0) {
+ if (crypto_secretbox(chunk_base, chunk_base, chunk_size + crypto_secretbox_ZEROBYTES, nonce,
+ ctx->key) != 0) {
die(0, "Encryption error");
}
/*
* copy nonce into empty space:
- *
+ *
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
* |LLL|NNNNNNN|NNNNNNNNNNNNNNN|CCCCCCCCCCCCCCC|CCCCCCCCCCCCCCCCCC
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
* | 4 | 8 | 16 | 16 | chunk_size
*/
memcpy(chunk_nonce, nonce, crypto_secretbox_NONCEBYTES);
- if (safe_write(ctx->fd_out, chunk_size_p, 4 + crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES + crypto_secretbox_ZEROBYTES + chunk_size,
+ if (safe_write(ctx->fd_out, chunk_size_p,
+ 4 + crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES +
+ crypto_secretbox_ZEROBYTES + chunk_size,
-1) < 0) {
die(1, "write()");
}
@@ -145,16 +152,19 @@ stream_decrypt(Context *ctx)
{
unsigned char *const chunk_size_p = ctx->buf;
unsigned char *const chunk_nonce = chunk_size_p + 4;
- unsigned char *const chunk_base = chunk_nonce + crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES;
- unsigned char *const chunk_msg = chunk_base + crypto_secretbox_ZEROBYTES;
- unsigned char nonce[crypto_secretbox_NONCEBYTES];
+ unsigned char *const chunk_base =
+ chunk_nonce + crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES;
+ unsigned char *const chunk_msg = chunk_base + crypto_secretbox_ZEROBYTES;
+ unsigned char nonce[crypto_secretbox_NONCEBYTES];
uint64_t chunk_id;
ssize_t readnb;
ssize_t max_chunk_size;
ssize_t chunk_size;
- assert(ctx->sizeof_buf >= 4 + crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES + crypto_secretbox_ZEROBYTES);
- max_chunk_size = ctx->sizeof_buf - 4 - crypto_secretbox_NONCEBYTES + crypto_secretbox_BOXZEROBYTES - crypto_secretbox_ZEROBYTES;
+ assert(ctx->sizeof_buf >= 4 + crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES +
+ crypto_secretbox_ZEROBYTES);
+ max_chunk_size = ctx->sizeof_buf - 4 - crypto_secretbox_NONCEBYTES +
+ crypto_secretbox_BOXZEROBYTES - crypto_secretbox_ZEROBYTES;
assert(max_chunk_size <= 0x7fffffff);
chunk_id = 0;
while ((readnb = safe_read(ctx->fd_in, chunk_size_p, 4)) == 4) {
@@ -162,13 +172,17 @@ stream_decrypt(Context *ctx)
if (chunk_size > max_chunk_size) {
die(0, "Chunk size too large ([%zd] > [%zd])", chunk_size, max_chunk_size);
}
- if (safe_read(ctx->fd_in, chunk_nonce, crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES + crypto_secretbox_ZEROBYTES + chunk_size) !=
- crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES + crypto_secretbox_ZEROBYTES + chunk_size) {
+ if (safe_read(ctx->fd_in, chunk_nonce,
+ crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES +
+ crypto_secretbox_ZEROBYTES + chunk_size) !=
+ crypto_secretbox_NONCEBYTES - crypto_secretbox_BOXZEROBYTES +
+ crypto_secretbox_ZEROBYTES + chunk_size) {
die(0, "Chunk too short ([%zd] bytes expected)", chunk_size);
}
memcpy(nonce, chunk_nonce, crypto_secretbox_NONCEBYTES);
memzero(chunk_nonce, crypto_secretbox_NONCEBYTES);
- if (crypto_secretbox_open(chunk_base, chunk_base, chunk_size + crypto_secretbox_ZEROBYTES, nonce, ctx->key) != 0) {
+ if (crypto_secretbox_open(chunk_base, chunk_base, chunk_size + crypto_secretbox_ZEROBYTES,
+ nonce, ctx->key) != 0) {
printf("Unable to decrypt chunk #%" PRIu64 " - ", chunk_id);
if (chunk_id == 0) {
die(0, "Wrong password or key?");