From bade988016aa5d2936c6bdf53570125181cfe2f9 Mon Sep 17 00:00:00 2001 From: Simon Josefsson Date: Wed, 2 Jul 2008 15:24:05 +0200 Subject: Indent code. --- lib/opencdk/read-packet.c | 384 +++++++++++++++++++++++----------------------- 1 file changed, 195 insertions(+), 189 deletions(-) (limited to 'lib/opencdk/read-packet.c') diff --git a/lib/opencdk/read-packet.c b/lib/opencdk/read-packet.c index 4e47c63c1e..9e40903f0b 100644 --- a/lib/opencdk/read-packet.c +++ b/lib/opencdk/read-packet.c @@ -39,10 +39,10 @@ #define MDC_PKT_VER 1 static int -stream_read (cdk_stream_t s, void *buf, size_t buflen, size_t *r_nread) +stream_read (cdk_stream_t s, void *buf, size_t buflen, size_t * r_nread) { *r_nread = cdk_stream_read (s, buf, buflen); - return *r_nread > 0? 0: _cdk_stream_get_errno (s); + return *r_nread > 0 ? 0 : _cdk_stream_get_errno (s); } @@ -52,12 +52,12 @@ read_32 (cdk_stream_t s) { byte buf[4]; size_t nread; - + assert (s != NULL); stream_read (s, buf, 4, &nread); if (nread != 4) - return (u32)-1; + return (u32) - 1; return buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3]; } @@ -68,12 +68,12 @@ read_16 (cdk_stream_t s) { byte buf[2]; size_t nread; - + assert (s != NULL); - + stream_read (s, buf, 2, &nread); if (nread != 2) - return (u16)-1; + return (u16) - 1; return buf[0] << 8 | buf[1]; } @@ -86,38 +86,39 @@ read_s2k (cdk_stream_t inp, cdk_s2k_t s2k) static cdk_error_t -read_mpi (cdk_stream_t inp, bigint_t *ret_m, int secure) +read_mpi (cdk_stream_t inp, bigint_t * ret_m, int secure) { bigint_t m; int err; - byte buf[MAX_MPI_BYTES+2]; + byte buf[MAX_MPI_BYTES + 2]; size_t nread, nbits; cdk_error_t rc; - + if (!inp || !ret_m) return CDK_Inv_Value; - + *ret_m = NULL; nbits = read_16 (inp); - nread = (nbits+7)/8; - + nread = (nbits + 7) / 8; + if (nbits > MAX_MPI_BITS || nbits == 0) { _cdk_log_debug ("read_mpi: too large %d bits\n", nbits); - return CDK_MPI_Error; /* Sanity check */ - } - - rc = stream_read (inp, buf+2, nread, &nread); - if (!rc && nread != ((nbits+7)/8)) + return CDK_MPI_Error; /* Sanity check */ + } + + rc = stream_read (inp, buf + 2, nread, &nread); + if (!rc && nread != ((nbits + 7) / 8)) { - _cdk_log_debug ("read_mpi: too short %d < %d\n", nread, (nbits+7)/8); + _cdk_log_debug ("read_mpi: too short %d < %d\n", nread, + (nbits + 7) / 8); return CDK_MPI_Error; - } - + } + buf[0] = nbits >> 8; buf[1] = nbits >> 0; - nread+=2; - err = _gnutls_mpi_scan_pgp( &m, buf, nread); + nread += 2; + err = _gnutls_mpi_scan_pgp (&m, buf, nread); if (err < 0) return map_gnutls_error (err); @@ -130,31 +131,31 @@ read_mpi (cdk_stream_t inp, bigint_t *ret_m, int secure) object INP and return it. Reset RET_PARTIAL if this is the last packet in block mode. */ size_t -_cdk_pkt_read_len (FILE *inp, size_t *ret_partial) +_cdk_pkt_read_len (FILE * inp, size_t * ret_partial) { int c1, c2; size_t pktlen; - + c1 = fgetc (inp); if (c1 == EOF) - return (size_t)EOF; + return (size_t) EOF; if (c1 < 224 || c1 == 255) - *ret_partial = 0; /* End of partial data */ + *ret_partial = 0; /* End of partial data */ if (c1 < 192) pktlen = c1; else if (c1 >= 192 && c1 <= 223) { c2 = fgetc (inp); if (c2 == EOF) - return (size_t)EOF; + return (size_t) EOF; pktlen = ((c1 - 192) << 8) + c2 + 192; } else if (c1 == 255) { - pktlen = fgetc (inp) << 24; + pktlen = fgetc (inp) << 24; pktlen |= fgetc (inp) << 16; - pktlen |= fgetc (inp) << 8; - pktlen |= fgetc (inp) << 0; + pktlen |= fgetc (inp) << 8; + pktlen |= fgetc (inp) << 0; } else pktlen = 1 << (c1 & 0x1f); @@ -169,10 +170,10 @@ read_pubkey_enc (cdk_stream_t inp, size_t pktlen, cdk_pkt_pubkey_enc_t pke) if (!inp || !pke) return CDK_Inv_Value; - + if (DEBUG_PKT) _cdk_log_debug ("read_pubkey_enc: %d octets\n", pktlen); - + if (pktlen < 12) return CDK_Inv_Packet; pke->version = cdk_stream_getc (inp); @@ -181,18 +182,18 @@ read_pubkey_enc (cdk_stream_t inp, size_t pktlen, cdk_pkt_pubkey_enc_t pke) pke->keyid[0] = read_32 (inp); pke->keyid[1] = read_32 (inp); if (!pke->keyid[0] && !pke->keyid[1]) - pke->throw_keyid = 1; /* RFC2440 "speculative" keyID */ - pke->pubkey_algo = _pgp_pub_algo_to_cdk(cdk_stream_getc (inp)); + pke->throw_keyid = 1; /* RFC2440 "speculative" keyID */ + pke->pubkey_algo = _pgp_pub_algo_to_cdk (cdk_stream_getc (inp)); nenc = cdk_pk_get_nenc (pke->pubkey_algo); if (!nenc) return CDK_Inv_Algo; - for (i = 0; i < nenc; i++) + for (i = 0; i < nenc; i++) { cdk_error_t rc = read_mpi (inp, &pke->mpi[i], 0); if (rc) return rc; } - + return 0; } @@ -206,15 +207,15 @@ read_mdc (cdk_stream_t inp, cdk_pkt_mdc_t mdc) if (!inp || !mdc) return CDK_Inv_Value; - + if (DEBUG_PKT) _cdk_log_debug ("read_mdc:\n"); - + rc = stream_read (inp, mdc->hash, DIM (mdc->hash), &n); if (rc) - return rc; - - return n != DIM (mdc->hash)? CDK_Inv_Packet : 0; + return rc; + + return n != DIM (mdc->hash) ? CDK_Inv_Packet : 0; } @@ -223,21 +224,21 @@ read_compressed (cdk_stream_t inp, size_t pktlen, cdk_pkt_compressed_t c) { if (!inp || !c) return CDK_Inv_Value; - + if (DEBUG_PKT) _cdk_log_debug ("read_compressed: %d octets\n", pktlen); - + c->algorithm = cdk_stream_getc (inp); if (c->algorithm > 3) return CDK_Inv_Packet; - + /* don't know the size, so we read until EOF */ if (!pktlen) { c->len = 0; c->buf = inp; } - + /* FIXME: Support partial bodies. */ return 0; } @@ -247,17 +248,17 @@ static cdk_error_t read_public_key (cdk_stream_t inp, size_t pktlen, cdk_pkt_pubkey_t pk) { size_t i, ndays, npkey; - + if (!inp || !pk) return CDK_Inv_Value; - + if (DEBUG_PKT) _cdk_log_debug ("read_public_key: %d octets\n", pktlen); - - pk->is_invalid = 1; /* default to detect missing self signatures */ + + pk->is_invalid = 1; /* default to detect missing self signatures */ pk->is_revoked = 0; pk->has_expired = 0; - + pk->version = cdk_stream_getc (inp); if (pk->version < 2 || pk->version > 4) return CDK_Inv_Packet_Ver; @@ -265,25 +266,25 @@ read_public_key (cdk_stream_t inp, size_t pktlen, cdk_pkt_pubkey_t pk) if (pk->version < 4) { ndays = read_16 (inp); - if (ndays) + if (ndays) pk->expiredate = pk->timestamp + ndays * 86400L; } - - pk->pubkey_algo = _pgp_pub_algo_to_cdk(cdk_stream_getc (inp)); + + pk->pubkey_algo = _pgp_pub_algo_to_cdk (cdk_stream_getc (inp)); npkey = cdk_pk_get_npkey (pk->pubkey_algo); if (!npkey) { - gnutls_assert(); + gnutls_assert (); _cdk_log_debug ("invalid public key algorithm %d\n", pk->pubkey_algo); return CDK_Inv_Algo; - } + } for (i = 0; i < npkey; i++) { cdk_error_t rc = read_mpi (inp, &pk->mpi[i], 0); if (rc) return rc; } - + /* This value is just for the first run and will be replaced with the actual key flags from the self signature. */ pk->pubkey_usage = 0; @@ -322,12 +323,12 @@ read_secret_key (cdk_stream_t inp, size_t pktlen, cdk_pkt_seckey_t sk) if (sk->s2k_usage == 254 || sk->s2k_usage == 255) { sk->protect.sha1chk = (sk->s2k_usage == 254); - sk->protect.algo = _pgp_cipher_to_gnutls(cdk_stream_getc (inp)); + sk->protect.algo = _pgp_cipher_to_gnutls (cdk_stream_getc (inp)); sk->protect.s2k = cdk_calloc (1, sizeof *sk->protect.s2k); if (!sk->protect.s2k) return CDK_Out_Of_Core; rc = read_s2k (inp, sk->protect.s2k); - if (rc) + if (rc) return rc; sk->protect.ivlen = _gnutls_cipher_get_block_size (sk->protect.algo); if (sk->protect.ivlen <= 0) @@ -339,15 +340,16 @@ read_secret_key (cdk_stream_t inp, size_t pktlen, cdk_pkt_seckey_t sk) return CDK_Inv_Packet; } else - sk->protect.algo = _pgp_cipher_to_gnutls(sk->s2k_usage); + sk->protect.algo = _pgp_cipher_to_gnutls (sk->s2k_usage); if (sk->protect.algo == GNUTLS_CIPHER_NULL) { sk->csum = 0; nskey = cdk_pk_get_nskey (sk->pk->pubkey_algo); - if (!nskey) { - gnutls_assert(); - return CDK_Inv_Algo; - } + if (!nskey) + { + gnutls_assert (); + return CDK_Inv_Algo; + } for (i = 0; i < nskey; i++) { rc = read_mpi (inp, &sk->mpi[i], 1); @@ -358,14 +360,15 @@ read_secret_key (cdk_stream_t inp, size_t pktlen, cdk_pkt_seckey_t sk) sk->is_protected = 0; } else if (sk->pk->version < 4) - { + { /* The length of each multiprecision integer is stored in plaintext. */ nskey = cdk_pk_get_nskey (sk->pk->pubkey_algo); - if (!nskey) { - gnutls_assert(); - return CDK_Inv_Algo; - } - for (i = 0; i < nskey; i++) + if (!nskey) + { + gnutls_assert (); + return CDK_Inv_Algo; + } + for (i = 0; i < nskey; i++) { rc = read_mpi (inp, &sk->mpi[i], 1); if (rc) @@ -373,32 +376,33 @@ read_secret_key (cdk_stream_t inp, size_t pktlen, cdk_pkt_seckey_t sk) } sk->csum = read_16 (inp); sk->is_protected = 1; - } + } else { /* We need to read the rest of the packet because we do not - have any information how long the encrypted mpi's are */ + have any information how long the encrypted mpi's are */ p2 = cdk_stream_tell (inp); p2 -= p1; sk->enclen = pktlen - p2; if (sk->enclen < 2) - return CDK_Inv_Packet; /* at least 16 bits for the checksum! */ + return CDK_Inv_Packet; /* at least 16 bits for the checksum! */ sk->encdata = cdk_calloc (1, sk->enclen + 1); if (!sk->encdata) return CDK_Out_Of_Core; if (stream_read (inp, sk->encdata, sk->enclen, &nread)) return CDK_Inv_Packet; nskey = cdk_pk_get_nskey (sk->pk->pubkey_algo); - if (!nskey) { - gnutls_assert(); - return CDK_Inv_Algo; - } + if (!nskey) + { + gnutls_assert (); + return CDK_Inv_Algo; + } /* We mark each MPI entry with NULL to indicate a protected key. */ for (i = 0; i < nskey; i++) sk->mpi[i] = NULL; sk->is_protected = 1; } - + sk->is_primary = 1; _cdk_copy_pk_to_sk (sk->pk, sk); return 0; @@ -412,7 +416,7 @@ read_secret_subkey (cdk_stream_t inp, size_t pktlen, cdk_pkt_seckey_t sk) if (!inp || !sk || !sk->pk) return CDK_Inv_Value; - + rc = read_secret_key (inp, pktlen, sk); sk->is_primary = 0; return rc; @@ -426,30 +430,32 @@ read_attribute (cdk_stream_t inp, size_t pktlen, cdk_pkt_userid_t attr) byte *buf; size_t len, nread; cdk_error_t rc; - + if (!inp || !attr || !pktlen) return CDK_Inv_Value; - + if (DEBUG_PKT) _cdk_log_debug ("read_attribute: %d octets\n", pktlen); - + strcpy (attr->name, "[attribute]"); attr->len = strlen (attr->name); buf = cdk_calloc (1, pktlen); if (!buf) return CDK_Out_Of_Core; rc = stream_read (inp, buf, pktlen, &nread); - if (rc) + if (rc) { cdk_free (buf); return CDK_Inv_Packet; } p = buf; - len = *p++; pktlen--; + len = *p++; + pktlen--; if (len == 255) { len = _cdk_buftou32 (p); - p += 4; pktlen -= 4; + p += 4; + pktlen -= 4; } else if (len >= 192) { @@ -457,26 +463,28 @@ read_attribute (cdk_stream_t inp, size_t pktlen, cdk_pkt_userid_t attr) { cdk_free (buf); return CDK_Inv_Packet; - } + } len = ((len - 192) << 8) + *p + 192; - p++; pktlen--; + p++; + pktlen--; } - - if (*p != 1) /* Currently only 1, meaning an image, is defined. */ + + if (*p != 1) /* Currently only 1, meaning an image, is defined. */ { cdk_free (buf); return CDK_Inv_Packet; } - p++; len--; - - if (pktlen - (len+1) > 0) + p++; + len--; + + if (pktlen - (len + 1) > 0) return CDK_Inv_Packet; attr->attrib_img = cdk_calloc (1, len); if (!attr->attrib_img) { cdk_free (buf); return CDK_Out_Of_Core; - } + } attr->attrib_len = len; memcpy (attr->attrib_img, p, len); cdk_free (buf); @@ -489,15 +497,15 @@ read_user_id (cdk_stream_t inp, size_t pktlen, cdk_pkt_userid_t user_id) { size_t nread; cdk_error_t rc; - + if (!inp || !user_id) return CDK_Inv_Value; if (!pktlen) return CDK_Inv_Packet; - + if (DEBUG_PKT) - _cdk_log_debug ("read_user_id: %lu octets\n", pktlen); - + _cdk_log_debug ("read_user_id: %lu octets\n", pktlen); + user_id->len = pktlen; rc = stream_read (inp, user_id->name, pktlen, &nread); if (rc) @@ -510,19 +518,19 @@ read_user_id (cdk_stream_t inp, size_t pktlen, cdk_pkt_userid_t user_id) static cdk_error_t -read_subpkt( cdk_stream_t inp, cdk_subpkt_t * r_ctx, size_t * r_nbytes ) +read_subpkt (cdk_stream_t inp, cdk_subpkt_t * r_ctx, size_t * r_nbytes) { byte c, c1; size_t size, nread, n; cdk_subpkt_t node; cdk_error_t rc; - + if (!inp || !r_nbytes) return CDK_Inv_Value; - + if (DEBUG_PKT) _cdk_log_debug ("read_subpkt:\n"); - + n = 0; *r_nbytes = 0; c = cdk_stream_getc (inp); @@ -544,10 +552,10 @@ read_subpkt( cdk_stream_t inp, cdk_subpkt_t * r_ctx, size_t * r_nbytes ) size = c; else return CDK_Inv_Packet; - + node = cdk_subpkt_new (size); if (!node) - return CDK_Out_Of_Core; + return CDK_Out_Of_Core; node->size = size; node->type = cdk_stream_getc (inp); if (DEBUG_PKT) @@ -559,7 +567,7 @@ read_subpkt( cdk_stream_t inp, cdk_subpkt_t * r_ctx, size_t * r_nbytes ) if (rc) return rc; *r_nbytes = n; - if (! *r_ctx) + if (!*r_ctx) *r_ctx = node; else cdk_subpkt_add (*r_ctx, node); @@ -572,20 +580,20 @@ read_onepass_sig (cdk_stream_t inp, size_t pktlen, cdk_pkt_onepass_sig_t sig) { if (!inp || !sig) return CDK_Inv_Value; - + if (DEBUG_PKT) _cdk_log_debug ("read_onepass_sig: %d octets\n", pktlen); - + if (pktlen != 13) return CDK_Inv_Packet; sig->version = cdk_stream_getc (inp); if (sig->version != 3) return CDK_Inv_Packet_Ver; sig->sig_class = cdk_stream_getc (inp); - sig->digest_algo = _pgp_hash_algo_to_gnutls(cdk_stream_getc (inp)); - sig->pubkey_algo = _pgp_pub_algo_to_cdk(cdk_stream_getc (inp)); + sig->digest_algo = _pgp_hash_algo_to_gnutls (cdk_stream_getc (inp)); + sig->pubkey_algo = _pgp_pub_algo_to_cdk (cdk_stream_getc (inp)); sig->keyid[0] = read_32 (inp); - sig->keyid[1] = read_32 (inp); + sig->keyid[1] = read_32 (inp); sig->last = cdk_stream_getc (inp); return 0; } @@ -595,32 +603,30 @@ static cdk_error_t parse_sig_subpackets (cdk_pkt_signature_t sig) { cdk_subpkt_t node; - + /* Setup the standard packet entries, so we can use V4 signatures similar to V3. */ for (node = sig->unhashed; node; node = node->next) { if (node->type == CDK_SIGSUBPKT_ISSUER && node->size >= 8) { - sig->keyid[0] = _cdk_buftou32 (node->d ); + sig->keyid[0] = _cdk_buftou32 (node->d); sig->keyid[1] = _cdk_buftou32 (node->d + 4); } - else if (node->type == CDK_SIGSUBPKT_EXPORTABLE && - node->d[0] == 0) + else if (node->type == CDK_SIGSUBPKT_EXPORTABLE && node->d[0] == 0) { /* Sometimes this packet might be placed in the unhashed area */ sig->flags.exportable = 0; } } - for (node = sig->hashed; node; node = node->next) + for (node = sig->hashed; node; node = node->next) { if (node->type == CDK_SIGSUBPKT_SIG_CREATED && node->size >= 4) sig->timestamp = _cdk_buftou32 (node->d); else if (node->type == CDK_SIGSUBPKT_SIG_EXPIRE && node->size >= 4) { sig->expiredate = _cdk_buftou32 (node->d); - if (sig->expiredate > 0 && - sig->expiredate < (u32)time (NULL)) + if (sig->expiredate > 0 && sig->expiredate < (u32) time (NULL)) sig->flags.expired = 1; } else if (node->type == CDK_SIGSUBPKT_POLICY) @@ -628,17 +634,17 @@ parse_sig_subpackets (cdk_pkt_signature_t sig) else if (node->type == CDK_SIGSUBPKT_NOTATION) sig->flags.notation = 1; else if (node->type == CDK_SIGSUBPKT_REVOCABLE && node->d[0] == 0) - sig->flags.revocable = 0; - else if (node->type == CDK_SIGSUBPKT_EXPORTABLE && node->d[0]== 0) + sig->flags.revocable = 0; + else if (node->type == CDK_SIGSUBPKT_EXPORTABLE && node->d[0] == 0) sig->flags.exportable = 0; } if (sig->sig_class == 0x1F) { cdk_desig_revoker_t r, rnode; - + for (node = sig->hashed; node; node = node->next) { - if (node->type == CDK_SIGSUBPKT_REV_KEY) + if (node->type == CDK_SIGSUBPKT_REV_KEY) { if (node->size < 22) continue; @@ -647,10 +653,10 @@ parse_sig_subpackets (cdk_pkt_signature_t sig) return CDK_Out_Of_Core; rnode->r_class = node->d[0]; rnode->algid = node->d[1]; - memcpy (rnode->fpr, node->d+2, KEY_FPR_LEN); + memcpy (rnode->fpr, node->d + 2, KEY_FPR_LEN); if (!sig->revkeys) - sig->revkeys = rnode; - else + sig->revkeys = rnode; + else { for (r = sig->revkeys; r->next; r = r->next) ; @@ -659,7 +665,7 @@ parse_sig_subpackets (cdk_pkt_signature_t sig) } } } - + return 0; } @@ -673,20 +679,20 @@ read_signature (cdk_stream_t inp, size_t pktlen, cdk_pkt_signature_t sig) if (!inp || !sig) return CDK_Inv_Value; - + if (DEBUG_PKT) _cdk_log_debug ("read_signature: %d octets\n", pktlen); - + if (pktlen < 16) return CDK_Inv_Packet; sig->version = cdk_stream_getc (inp); if (sig->version < 2 || sig->version > 4) return CDK_Inv_Packet_Ver; - + sig->flags.exportable = 1; sig->flags.revocable = 1; - - if (sig->version < 4) + + if (sig->version < 4) { if (cdk_stream_getc (inp) != 5) return CDK_Inv_Packet; @@ -694,8 +700,8 @@ read_signature (cdk_stream_t inp, size_t pktlen, cdk_pkt_signature_t sig) sig->timestamp = read_32 (inp); sig->keyid[0] = read_32 (inp); sig->keyid[1] = read_32 (inp); - sig->pubkey_algo = _pgp_pub_algo_to_cdk(cdk_stream_getc (inp)); - sig->digest_algo = _pgp_hash_algo_to_gnutls(cdk_stream_getc (inp)); + sig->pubkey_algo = _pgp_pub_algo_to_cdk (cdk_stream_getc (inp)); + sig->digest_algo = _pgp_hash_algo_to_gnutls (cdk_stream_getc (inp)); sig->digest_start[0] = cdk_stream_getc (inp); sig->digest_start[1] = cdk_stream_getc (inp); nsig = cdk_pk_get_nsig (sig->pubkey_algo); @@ -708,21 +714,21 @@ read_signature (cdk_stream_t inp, size_t pktlen, cdk_pkt_signature_t sig) return rc; } } - else + else { sig->sig_class = cdk_stream_getc (inp); - sig->pubkey_algo = _pgp_pub_algo_to_cdk(cdk_stream_getc (inp)); - sig->digest_algo = _pgp_hash_algo_to_gnutls(cdk_stream_getc (inp)); + sig->pubkey_algo = _pgp_pub_algo_to_cdk (cdk_stream_getc (inp)); + sig->digest_algo = _pgp_hash_algo_to_gnutls (cdk_stream_getc (inp)); sig->hashed_size = read_16 (inp); size = sig->hashed_size; sig->hashed = NULL; - while (size > 0) + while (size > 0) { rc = read_subpkt (inp, &sig->hashed, &nbytes); if (rc) return rc; size -= nbytes; - } + } sig->unhashed_size = read_16 (inp); size = sig->unhashed_size; sig->unhashed = NULL; @@ -733,11 +739,11 @@ read_signature (cdk_stream_t inp, size_t pktlen, cdk_pkt_signature_t sig) return rc; size -= nbytes; } - + rc = parse_sig_subpackets (sig); if (rc) return rc; - + sig->digest_start[0] = cdk_stream_getc (inp); sig->digest_start[1] = cdk_stream_getc (inp); nsig = cdk_pk_get_nsig (sig->pubkey_algo); @@ -750,41 +756,41 @@ read_signature (cdk_stream_t inp, size_t pktlen, cdk_pkt_signature_t sig) return rc; } } - + return 0; } static cdk_error_t -read_literal (cdk_stream_t inp, size_t pktlen, - cdk_pkt_literal_t *ret_pt, int is_partial) +read_literal (cdk_stream_t inp, size_t pktlen, + cdk_pkt_literal_t * ret_pt, int is_partial) { cdk_pkt_literal_t pt = *ret_pt; - size_t nread ; + size_t nread; cdk_error_t rc; if (!inp || !pt) return CDK_Inv_Value; - + if (DEBUG_PKT) _cdk_log_debug ("read_literal: %d octets\n", pktlen); - + pt->mode = cdk_stream_getc (inp); if (pt->mode != 0x62 && pt->mode != 0x74 && pt->mode != 0x75) return CDK_Inv_Packet; if (cdk_stream_eof (inp)) return CDK_Inv_Packet; - + pt->namelen = cdk_stream_getc (inp); if (pt->namelen > 0) { - *ret_pt = pt = cdk_realloc (pt, sizeof * pt + pt->namelen + 1); + *ret_pt = pt = cdk_realloc (pt, sizeof *pt + pt->namelen + 1); if (!pt) return CDK_Out_Of_Core; rc = stream_read (inp, pt->name, pt->namelen, &nread); if (rc) return rc; - if ((int)nread != pt->namelen) + if ((int) nread != pt->namelen) return CDK_Inv_Packet; pt->name[pt->namelen] = '\0'; } @@ -800,10 +806,10 @@ read_literal (cdk_stream_t inp, size_t pktlen, /* Read an old packet CTB and return the length of the body. */ static void -read_old_length (cdk_stream_t inp, int ctb, size_t *r_len, size_t *r_size) +read_old_length (cdk_stream_t inp, int ctb, size_t * r_len, size_t * r_size) { int llen = ctb & 0x03; - + if (llen == 0) { *r_len = cdk_stream_getc (inp); @@ -819,8 +825,8 @@ read_old_length (cdk_stream_t inp, int ctb, size_t *r_len, size_t *r_size) *r_len = read_32 (inp); (*r_size) += 4; } - else - { + else + { *r_len = 0; *r_size = 0; } @@ -830,10 +836,10 @@ read_old_length (cdk_stream_t inp, int ctb, size_t *r_len, size_t *r_size) /* Read a new CTB and decode the body length. */ static void read_new_length (cdk_stream_t inp, - size_t *r_len, size_t *r_size, size_t *r_partial) + size_t * r_len, size_t * r_size, size_t * r_partial) { int c, c1; - + c = cdk_stream_getc (inp); (*r_size)++; if (c < 192) @@ -844,16 +850,16 @@ read_new_length (cdk_stream_t inp, (*r_size)++; *r_len = ((c - 192) << 8) + c1 + 192; } - else if (c == 255) + else if (c == 255) { *r_len = read_32 (inp); - (*r_size) += 4; + (*r_size) += 4; } - else + else { *r_len = 1 << (c & 0x1f); *r_partial = 1; - } + } } @@ -863,10 +869,10 @@ skip_packet (cdk_stream_t inp, size_t pktlen) { byte buf[BUFSIZE]; size_t nread, buflen = DIM (buf); - + while (pktlen > 0) { - stream_read (inp, buf, pktlen > buflen? buflen : pktlen, &nread); + stream_read (inp, buf, pktlen > buflen ? buflen : pktlen, &nread); pktlen -= nread; } @@ -888,42 +894,42 @@ cdk_pkt_read (cdk_stream_t inp, cdk_packet_t pkt) int pkttype; size_t pktlen = 0, pktsize = 0, is_partial = 0; cdk_error_t rc; - + if (!inp || !pkt) return CDK_Inv_Value; - + ctb = cdk_stream_getc (inp); if (cdk_stream_eof (inp) || ctb == EOF) return CDK_EOF; else if (!ctb) return CDK_Inv_Packet; - + pktsize++; - if (!(ctb & 0x80)) + if (!(ctb & 0x80)) { _cdk_log_info ("cdk_pkt_read: no openpgp data found. " - "(ctb=%02X; fpos=%02X)\n",ctb, cdk_stream_tell (inp)); + "(ctb=%02X; fpos=%02X)\n", ctb, cdk_stream_tell (inp)); return CDK_Inv_Packet; - } - - if (ctb & 0x40) /* RFC2440 packet format. */ + } + + if (ctb & 0x40) /* RFC2440 packet format. */ { pkttype = ctb & 0x3f; is_newctb = 1; } - else /* the old RFC1991 packet format. */ + else /* the old RFC1991 packet format. */ { pkttype = ctb & 0x3f; pkttype >>= 2; is_newctb = 0; } - + if (pkttype > 63) { _cdk_log_info ("cdk_pkt_read: unknown type %d\n", pkttype); return CDK_Inv_Packet; } - + if (is_newctb) read_new_length (inp, &pktlen, &pktsize, &is_partial); else @@ -932,8 +938,8 @@ cdk_pkt_read (cdk_stream_t inp, cdk_packet_t pkt) pkt->pkttype = pkttype; pkt->pktlen = pktlen; pkt->pktsize = pktsize + pktlen; - pkt->old_ctb = is_newctb? 0 : 1; - + pkt->old_ctb = is_newctb ? 0 : 1; + rc = 0; switch (pkt->pkttype) { @@ -945,7 +951,7 @@ cdk_pkt_read (cdk_stream_t inp, cdk_packet_t pkt) rc = read_attribute (inp, pktlen, pkt->pkt.user_id); pkt->pkttype = CDK_PKT_ATTRIBUTE; break; - + case CDK_PKT_USER_ID: pkt->pkt.user_id = cdk_calloc (1, sizeof *pkt->pkt.user_id + pkt->pktlen); @@ -953,90 +959,90 @@ cdk_pkt_read (cdk_stream_t inp, cdk_packet_t pkt) return CDK_Out_Of_Core; rc = read_user_id (inp, pktlen, pkt->pkt.user_id); break; - + case CDK_PKT_PUBLIC_KEY: pkt->pkt.public_key = cdk_calloc (1, sizeof *pkt->pkt.public_key); if (!pkt->pkt.public_key) return CDK_Out_Of_Core; rc = read_public_key (inp, pktlen, pkt->pkt.public_key); break; - + case CDK_PKT_PUBLIC_SUBKEY: pkt->pkt.public_key = cdk_calloc (1, sizeof *pkt->pkt.public_key); if (!pkt->pkt.public_key) return CDK_Out_Of_Core; - rc = read_public_subkey (inp, pktlen, pkt->pkt.public_key); + rc = read_public_subkey (inp, pktlen, pkt->pkt.public_key); break; - + case CDK_PKT_SECRET_KEY: pkt->pkt.secret_key = cdk_calloc (1, sizeof *pkt->pkt.secret_key); if (!pkt->pkt.secret_key) return CDK_Out_Of_Core; - pkt->pkt.secret_key->pk =cdk_calloc (1, - sizeof *pkt->pkt.secret_key->pk); + pkt->pkt.secret_key->pk = cdk_calloc (1, + sizeof *pkt->pkt.secret_key->pk); if (!pkt->pkt.secret_key->pk) return CDK_Out_Of_Core; rc = read_secret_key (inp, pktlen, pkt->pkt.secret_key); break; - + case CDK_PKT_SECRET_SUBKEY: pkt->pkt.secret_key = cdk_calloc (1, sizeof *pkt->pkt.secret_key); if (!pkt->pkt.secret_key) return CDK_Out_Of_Core; - pkt->pkt.secret_key->pk = cdk_calloc (1, + pkt->pkt.secret_key->pk = cdk_calloc (1, sizeof *pkt->pkt.secret_key->pk); if (!pkt->pkt.secret_key->pk) return CDK_Out_Of_Core; rc = read_secret_subkey (inp, pktlen, pkt->pkt.secret_key); break; - + case CDK_PKT_LITERAL: pkt->pkt.literal = cdk_calloc (1, sizeof *pkt->pkt.literal); if (!pkt->pkt.literal) return CDK_Out_Of_Core; rc = read_literal (inp, pktlen, &pkt->pkt.literal, is_partial); break; - + case CDK_PKT_ONEPASS_SIG: pkt->pkt.onepass_sig = cdk_calloc (1, sizeof *pkt->pkt.onepass_sig); if (!pkt->pkt.onepass_sig) return CDK_Out_Of_Core; rc = read_onepass_sig (inp, pktlen, pkt->pkt.onepass_sig); break; - + case CDK_PKT_SIGNATURE: pkt->pkt.signature = cdk_calloc (1, sizeof *pkt->pkt.signature); if (!pkt->pkt.signature) return CDK_Out_Of_Core; rc = read_signature (inp, pktlen, pkt->pkt.signature); break; - + case CDK_PKT_PUBKEY_ENC: pkt->pkt.pubkey_enc = cdk_calloc (1, sizeof *pkt->pkt.pubkey_enc); if (!pkt->pkt.pubkey_enc) return CDK_Out_Of_Core; rc = read_pubkey_enc (inp, pktlen, pkt->pkt.pubkey_enc); break; - + case CDK_PKT_COMPRESSED: pkt->pkt.compressed = cdk_calloc (1, sizeof *pkt->pkt.compressed); if (!pkt->pkt.compressed) return CDK_Out_Of_Core; rc = read_compressed (inp, pktlen, pkt->pkt.compressed); break; - + case CDK_PKT_MDC: pkt->pkt.mdc = cdk_calloc (1, sizeof *pkt->pkt.mdc); if (!pkt->pkt.mdc) return CDK_Out_Of_Core; rc = read_mdc (inp, pkt->pkt.mdc); break; - + default: /* Skip all packets we don't understand */ skip_packet (inp, pktlen); break; } - + return rc; } -- cgit v1.2.1