1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

better prime number generator. improved ELG key generation

This commit is contained in:
Werner Koch 1997-12-19 11:41:47 +00:00
parent 15426c6d96
commit ee8d92fefa
22 changed files with 1225 additions and 623 deletions

View file

@ -113,6 +113,7 @@ extern ushort small_prime_numbers[];
/*-- primegen.c --*/
MPI generate_secret_prime( unsigned nbits );
MPI generate_public_prime( unsigned nbits );
MPI generate_elg_prime( unsigned pbits, unsigned qbits, MPI g );
#endif /*G10_CIPHER_H*/

View file

@ -65,6 +65,7 @@ IOBUF iobuf_temp(void);
IOBUF iobuf_open( const char *fname );
IOBUF iobuf_create( const char *fname );
IOBUF iobuf_append( const char *fname );
IOBUF iobuf_openrw( const char *fname );
int iobuf_close( IOBUF iobuf );
int iobuf_cancel( IOBUF iobuf );

View file

@ -148,6 +148,7 @@ unsigned mpi_trailing_zeros( MPI a );
unsigned mpi_get_nbits( MPI a );
int mpi_test_bit( MPI a, unsigned n );
void mpi_set_bit( MPI a, unsigned n );
void mpi_set_highbit( MPI a, unsigned n );
void mpi_clear_bit( MPI a, unsigned n );
void mpi_set_bytes( MPI a, unsigned nbits, byte (*fnc)(int), int opaque );
void mpi_rshift( MPI x, MPI a, unsigned n );

View file

@ -22,22 +22,51 @@
#define G10_TYPES_H
#ifdef __linux__
/* FIXME: add stuff to configure to detect for typedefs */
#include <linux/types.h>
#define HAVE_ULONG_TYPEDEF
#define HAVE_USHORT_TYPEDEF
#endif
#ifndef HAVE_BYTE_TYPEDEF
typedef unsigned char byte;
#define HAVE_BYTE_TYPEDEF
#endif
/* Common code */
#ifndef HAVE_ULONG_TYPEDEF
#define HAVE_ULONG_TYPEDEF
typedef unsigned long ulong;
#endif
#ifndef HAVE_USHORT_TYPEDEF
#define HAVE_USHORT_TYPEDEF
typedef unsigned short ushort;
#define HAVE_USHORT_TYPEDEF
#endif
#ifndef HAVE_ULONG_TYPEDEF
typedef unsigned long ulong;
#define HAVE_ULONG_TYPEDEF
#endif
#ifndef HAVE_U16_TYPEDEF
#if SIZEOF_UNSIGNED_INT == 2
typedef unsigned int u16;
#elif SIZEOF_UNSIGNED_SHORT == 2
typedef unsigned short u16;
#else
#error no typedef for u16
#endif
#define HAVE_U16_TYPEDEF
#endif
#ifndef HAVE_U32_TYPEDEF
#if SIZEOF_UNSIGNED_INT == 4
typedef unsigned long u32;
#elif SIZEOF_UNSIGNED_LONG == 4
typedef unsigned int u32;
#else
#error no typedef for u32
#endif
#define HAVE_U32_TYPEDEF
#endif
typedef struct string_list {
struct string_list *next;
@ -45,32 +74,4 @@ typedef struct string_list {
} *STRLIST;
/****************************************
******** machine dependent stuff *******
****************************************/
#if defined(__hpux)
#define HAVE_BIG_ENDIAN 1
#else
#define HAVE_LITTLE_ENDIAN 1
#endif
/*** some defaults ***/
#ifndef HAVE_BYTE_TYPEDEF
#define HAVE_BYTE_TYPEDEF
typedef unsigned char byte;
#endif
#ifndef HAVE_U16_TYPEDEF
#define HAVE_U16_TYPEDEF
typedef unsigned short u16;
#endif
#ifndef HAVE_U32_TYPEDEF
#define HAVE_U32_TYPEDEF
typedef unsigned long u32;
#endif
#endif /*G10_TYPES_H*/