aboutsummaryrefslogtreecommitdiffstats
path: root/g10/misc.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--g10/misc.c92
1 files changed, 4 insertions, 88 deletions
diff --git a/g10/misc.c b/g10/misc.c
index fd00ec6d1..dc2f73be4 100644
--- a/g10/misc.c
+++ b/g10/misc.c
@@ -1459,7 +1459,6 @@ pubkey_nbits( int algo, gcry_mpi_t *key )
-/* FIXME: Use gcry_mpi_print directly. */
int
mpi_print (estream_t fp, gcry_mpi_t a, int mode)
{
@@ -1487,98 +1486,15 @@ mpi_print (estream_t fp, gcry_mpi_t a, int mode)
}
-/*
- * Write a special size+body mpi A, to OUT. The format of the content
- * of the MPI is one byte LEN, following by LEN bytes.
- */
-/* FIXME: Rename this function: it is not in iobuf.c */
-int
-iobuf_write_size_body_mpi (iobuf_t out, gcry_mpi_t a)
-{
- byte buffer[256]; /* Fixed buffer for a public parameter, max possible */
- size_t nbytes = (mpi_get_nbits (a)+7)/8;
- int rc;
-
- if( nbytes > sizeof(buffer) ) {
- log_error("mpi with size+body is too large (%u bytes)\n", nbytes);
- return gpg_error (GPG_ERR_TOO_LARGE);
- }
-
- rc = gcry_mpi_print (GCRYMPI_FMT_USG, buffer, sizeof(buffer), &nbytes, a);
- if( rc ) {
- log_error("Failed to exported size+body mpi\n");
- return rc;
- }
- if( nbytes < 2 || buffer[0] != nbytes-1 ) {
- if( nbytes > 2 )
- log_error("Internal size mismatch in mpi size+body: %02x != %02x (other bytes: %02x %02x ... %02x %02x)\n",
- buffer[0], nbytes-1, buffer[1], buffer[2], buffer[nbytes-2], buffer[nbytes-1]);
- else
- log_error("Internal size mismatch in mpi size+body: only %d bytes\n", nbytes );
- return gpg_error (GPG_ERR_INV_DATA);
- }
- return iobuf_write( out, buffer, nbytes );
-}
-
-
-/*
- * Read a special size+body from inp into body[body_max_size] and
- * return it in a buffer and as MPI. On success the number of
- * consumed bytes will body[0]+1. The format of the content of the
- * returned MPI is one byte LEN, following by LEN bytes. Caller is
- * expected to pre-allocate fixed-size 255 byte buffer (or smaller
- * when appropriate).
- */
-/* FIXME: Rename this function: it is not in iobuf.c */
-int
-iobuf_read_size_body (iobuf_t inp, byte *body, int body_max_size,
- int pktlen, gcry_mpi_t *out )
-{
- unsigned n;
- int rc;
- gcry_mpi_t result;
-
- *out = NULL;
-
- if( (n = iobuf_readbyte(inp)) == -1 )
- {
- return G10ERR_INVALID_PACKET;
- }
- if ( n >= body_max_size || n < 2)
- {
- log_error("invalid size+body field\n");
- return G10ERR_INVALID_PACKET;
- }
- body[0] = n;
- if ((n = iobuf_read(inp, body+1, n)) == -1)
- {
- log_error("invalid size+body field\n");
- return G10ERR_INVALID_PACKET;
- }
- if (n+1 > pktlen)
- {
- log_error("size+body field is larger than the packet\n");
- return G10ERR_INVALID_PACKET;
- }
- rc = gcry_mpi_scan (&result, GCRYMPI_FMT_USG, body, n+1, NULL);
- if (rc)
- log_fatal ("mpi_scan failed: %s\n", gpg_strerror (rc));
-
- *out = result;
-
- return rc;
-}
-
-
/* pkey[1] or skey[1] is Q for ECDSA, which is an uncompressed point,
i.e. 04 <x> <y> */
-int
-ecdsa_qbits_from_Q (int qbits )
+unsigned int
+ecdsa_qbits_from_Q (unsigned int qbits)
{
if ((qbits%8) > 3)
{
- log_error(_("ECDSA public key is expected to be in SEC encoding "
- "multiple of 8 bits\n"));
+ log_error (_("ECDSA public key is expected to be in SEC encoding "
+ "multiple of 8 bits\n"));
return 0;
}
qbits -= qbits%8;