/* base16dec -- an decoder for base16
-
- Copyright (C) 2006, 2012 Jeronimo Pellegrini, Niels Möller
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see http://www.gnu.org/licenses/.
-*/
+ *
+ * Copyright (C) 2006, 2012 Jeronimo Pellegrini, Niels Möller
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the nettle library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02111-1301, USA.
+ */
#if HAVE_CONFIG_H
# include "config.h"
for (;;)
{
int nbytes; /* Number of bytes read frmo disk at each iteration */
- size_t decoded_bytes; /* Bytes actually generated at each iteration */
+ unsigned decoded_bytes; /* Bytes actually generated at each iteration */
nbytes = fread(buffer, 1, CHUNK_SIZE, stdin);
return EXIT_FAILURE;
}
- /* Decodes one chunk: */
- if (!base16_decode_update(&b16_ctx, &decoded_bytes, result, nbytes, buffer))
- {
- werror ("Error decoding input (not base16?)\n");
- return EXIT_FAILURE;
- }
-
- if (!write_string (stdout, decoded_bytes, result))
- {
- werror ("Error writing file: %s\n", strerror(errno));
- return EXIT_FAILURE;
- }
- if (nbytes < CHUNK_SIZE)
- {
- /* Check if decoding finalized OK: */
- if (!base16_decode_final(&b16_ctx))
- {
- werror("Decoding did not finish properly.\n");
- return EXIT_FAILURE;
- }
- break;
- }
+ decoded_bytes = BASE16_DECODE_LENGTH(nbytes);
+
+ /* Decodes one chunk: */
+ if (!base16_decode_update(&b16_ctx, &decoded_bytes, result, nbytes, buffer))
+ {
+ werror ("Error decoding input (not base16?)\n");
+ return EXIT_FAILURE;
+ }
+
+ if (!write_string (stdout, decoded_bytes, result))
+ {
+ werror ("Error writing file: %s\n", strerror(errno));
+ return EXIT_FAILURE;
+ }
+ if (nbytes < CHUNK_SIZE)
+ {
+ /* Check if decoding finalized OK: */
+ if (!base16_decode_final(&b16_ctx))
+ {
+ werror("Decoding did not finish properly.\n");
+ return EXIT_FAILURE;
+ }
+ break;
+ }
}
if (fflush (stdout) != 0)