X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=crypt.h;h=019b643e7f00ef1c548a59b30e1d870f96cdb7d1;hp=c670755cc4834c431dbd77a967c0750cc7406a1d;hb=57e0c93e87138fdf1c8793c3d1f3d2880d717548;hpb=a27ec6094608c05a9f87e445902c29d15ca11547 diff --git a/crypt.h b/crypt.h index c670755c..019b643e 100644 --- a/crypt.h +++ b/crypt.h @@ -1,11 +1,35 @@ -#include +/* + * Copyright (C) 2005-2009 Andre Noll + * + * Licensed under the GPL v2. For licencing details see COPYING. + */ + /** \file crypt.h prototypes for the RSA crypt functions */ -int para_decrypt_challenge(char *key_file, long unsigned *challenge_nr, - unsigned char *buf, int rsa_inlen); -int para_encrypt_challenge(RSA* rsa, long unsigned challenge_nr, - unsigned char *outbuf); -int para_encrypt_buffer(RSA* rsa, unsigned char *inbuf, const unsigned len, + +#include +int para_encrypt_buffer(RSA* rsa, unsigned char *inbuf, unsigned len, unsigned char *outbuf); int para_decrypt_buffer(char *key_file, unsigned char *outbuf, unsigned char *inbuf, - int rsa_inlen); + unsigned rsa_inlen); int get_rsa_key(char *key_file, RSA **rsa, int private); + +void rsa_free(RSA *rsa); +void get_random_bytes_or_die(unsigned char *buf, int num); +void init_random_seed_or_die(void); + +struct rc4_context { + int fd; + RC4_KEY recv_key; + RC4_KEY send_key; +}; +int rc4_send_bin_buffer(struct rc4_context *rc4c, const char *buf, size_t len); +int rc4_send_buffer(struct rc4_context *rc4c, const char *buf); +__printf_2_3 int rc4_send_va_buffer(struct rc4_context *rc4c, const char *fmt, ...); +int rc4_recv_bin_buffer(struct rc4_context *rcc, char *buf, size_t size); +int rc4_recv_buffer(struct rc4_context *rcc, char *buf, size_t size); + +/** \cond used to distinguish between loading of private/public key */ +#define LOAD_PUBLIC_KEY 0 +#define LOAD_PRIVATE_KEY 1 +#define CHALLENGE_SIZE 64 +/** \endcond **/