diff options
Diffstat (limited to 'libssh/gcrypt_missing.c')
-rw-r--r-- | libssh/gcrypt_missing.c | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/libssh/gcrypt_missing.c b/libssh/gcrypt_missing.c deleted file mode 100644 index 7a456a6a..00000000 --- a/libssh/gcrypt_missing.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * gcrypt_missing.c - routines that are in OpenSSL but not in libgcrypt. - * - * This file is part of the SSH Library - * - * Copyright (c) 2003-2006 by Aris Adamantiadis - * - * The SSH Library 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. - * - * The SSH Library 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 SSH Library; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA. - */ - -#include <stdlib.h> -#include "libssh/priv.h" - -#ifdef HAVE_LIBGCRYPT -int my_gcry_dec2bn(bignum *bn, const char *data) { - int count; - - *bn = bignum_new(); - if (*bn == NULL) { - return 0; - } - gcry_mpi_set_ui(*bn, 0); - for (count = 0; data[count]; count++) { - gcry_mpi_mul_ui(*bn, *bn, 10); - gcry_mpi_add_ui(*bn, *bn, data[count] - '0'); - } - - return count; -} - -char *my_gcry_bn2dec(bignum bn) { - bignum bndup, num, ten; - char *ret; - int count, count2; - int size, rsize; - char decnum; - - size = gcry_mpi_get_nbits(bn) * 3; - rsize = size / 10 + size / 1000 + 2; - - ret = malloc(rsize + 1); - if (ret == NULL) { - return NULL; - } - - if (!gcry_mpi_cmp_ui(bn, 0)) { - strcpy(ret, "0"); - } else { - ten = bignum_new(); - if (ten == NULL) { - SAFE_FREE(ret); - return NULL; - } - - num = bignum_new(); - if (num == NULL) { - SAFE_FREE(ret); - bignum_free(ten); - return NULL; - } - - for (bndup = gcry_mpi_copy(bn), bignum_set_word(ten, 10), count = rsize; - count; count--) { - gcry_mpi_div(bndup, num, bndup, ten, 0); - for (decnum = 0, count2 = gcry_mpi_get_nbits(num); count2; - decnum *= 2, decnum += (gcry_mpi_test_bit(num, count2 - 1) ? 1 : 0), - count2--) - ; - ret[count - 1] = decnum + '0'; - } - for (count = 0; count < rsize && ret[count] == '0'; count++) - ; - for (count2 = 0; count2 < rsize - count; ++count2) { - ret[count2] = ret[count2 + count]; - } - ret[count2] = 0; - bignum_free(num); - bignum_free(bndup); - bignum_free(ten); - } - - return ret; -} - -#endif -/* vim: set ts=2 sw=2 et cindent: */ |