diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2009-09-26 00:29:53 +0200 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2009-09-26 00:29:53 +0200 |
commit | 3a8d839e8604bf66c04ad0b46e51402428a88b1a (patch) | |
tree | d4b3e09a967ebd723bec679311c29399dc58636a /include/libssh/wrapper.h | |
parent | 358647f5d9df24fc55f670a343152fd277416266 (diff) | |
download | libssh-3a8d839e8604bf66c04ad0b46e51402428a88b1a.tar.gz libssh-3a8d839e8604bf66c04ad0b46e51402428a88b1a.tar.xz libssh-3a8d839e8604bf66c04ad0b46e51402428a88b1a.zip |
More include file movings
Diffstat (limited to 'include/libssh/wrapper.h')
-rw-r--r-- | include/libssh/wrapper.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/include/libssh/wrapper.h b/include/libssh/wrapper.h new file mode 100644 index 0000000..c053faa --- /dev/null +++ b/include/libssh/wrapper.h @@ -0,0 +1,110 @@ +/* + * This file is part of the SSH Library + * + * Copyright (c) 2009 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. + */ + +#ifndef WRAPPER_H_ +#define WRAPPER_H_ + +#include "config.h" + +#ifdef MD5_DIGEST_LEN + #undef MD5_DIGEST_LEN +#endif +/* wrapper things */ +#ifdef HAVE_LIBGCRYPT +#include <gcrypt.h> +typedef gcry_md_hd_t SHACTX; +typedef gcry_md_hd_t MD5CTX; +typedef gcry_md_hd_t HMACCTX; +#define SHA_DIGEST_LEN 20 +#define MD5_DIGEST_LEN 16 +#define EVP_MAX_MD_SIZE 36 + +typedef gcry_mpi_t bignum; + +#define bignum_new() gcry_mpi_new(0) +#define bignum_free(num) gcry_mpi_release(num) +#define bignum_set_word(bn,n) gcry_mpi_set_ui(bn,n) +#define bignum_bin2bn(bn,datalen,data) gcry_mpi_scan(data,GCRYMPI_FMT_USG,bn,datalen,NULL) +#define bignum_bn2dec(num) my_gcry_bn2dec(num) +#define bignum_dec2bn(num, data) my_gcry_dec2bn(data, num) +#define bignum_bn2hex(num,data) gcry_mpi_aprint(GCRYMPI_FMT_HEX,data,NULL,num) +#define bignum_hex2bn(num,datalen,data) gcry_mpi_scan(num,GCRYMPI_FMT_HEX,data,datalen,NULL) +#define bignum_rand(num,bits) gcry_mpi_randomize(num,bits,GCRY_STRONG_RANDOM),gcry_mpi_set_bit(num,bits-1),gcry_mpi_set_bit(num,0) +#define bignum_mod_exp(dest,generator,exp,modulo) gcry_mpi_powm(dest,generator,exp,modulo) +#define bignum_num_bits(num) gcry_mpi_get_nbits(num) +#define bignum_num_bytes(num) ((gcry_mpi_get_nbits(num)+7)/8) +#define bignum_is_bit_set(num,bit) gcry_mpi_test_bit(num,bit) +#define bignum_bn2bin(num,datalen,data) gcry_mpi_print(GCRYMPI_FMT_USG,data,datalen,NULL,num) +#define bignum_cmp(num1,num2) gcry_mpi_cmp(num1,num2) + +#elif defined HAVE_LIBCRYPTO + +#include <openssl/dsa.h> +#include <openssl/rsa.h> +#include <openssl/sha.h> +#include <openssl/md5.h> +#include <openssl/hmac.h> +typedef SHA_CTX* SHACTX; +typedef MD5_CTX* MD5CTX; +typedef HMAC_CTX* HMACCTX; + +#define SHA_DIGEST_LEN SHA_DIGEST_LENGTH +#define MD5_DIGEST_LEN MD5_DIGEST_LENGTH + +#include <openssl/bn.h> +typedef BIGNUM* bignum; +typedef BN_CTX* bignum_CTX; + +#define bignum_new() BN_new() +#define bignum_free(num) BN_clear_free(num) +#define bignum_set_word(bn,n) BN_set_word(bn,n) +#define bignum_bin2bn(bn,datalen,data) BN_bin2bn(bn,datalen,data) +#define bignum_bn2dec(num) BN_bn2dec(num) +#define bignum_dec2bn(bn,data) BN_dec2bn(data,bn) +#define bignum_bn2hex(num) BN_bn2hex(num) +#define bignum_rand(rnd, bits, top, bottom) BN_rand(rnd,bits,top,bottom) +#define bignum_ctx_new() BN_CTX_new() +#define bignum_ctx_free(num) BN_CTX_free(num) +#define bignum_mod_exp(dest,generator,exp,modulo,ctx) BN_mod_exp(dest,generator,exp,modulo,ctx) +#define bignum_num_bytes(num) BN_num_bytes(num) +#define bignum_num_bits(num) BN_num_bits(num) +#define bignum_is_bit_set(num,bit) BN_is_bit_set(num,bit) +#define bignum_bn2bin(num,ptr) BN_bn2bin(num,ptr) +#define bignum_cmp(num1,num2) BN_cmp(num1,num2) + +#endif /* OPENSSL_CRYPTO */ + +/* wrapper.c */ +MD5CTX md5_init(void); +void md5_update(MD5CTX c, const void *data, unsigned long len); +void md5_final(unsigned char *md,MD5CTX c); +SHACTX sha1_init(void); +void sha1_update(SHACTX c, const void *data, unsigned long len); +void sha1_final(unsigned char *md,SHACTX c); +void sha1(unsigned char *digest,int len,unsigned char *hash); +#define HMAC_SHA1 1 +#define HMAC_MD5 2 +HMACCTX hmac_init(const void *key,int len,int type); +void hmac_update(HMACCTX c, const void *data, unsigned long len); +void hmac_final(HMACCTX ctx,unsigned char *hashmacbuf,unsigned int *len); + + +#endif /* WRAPPER_H_ */ |