00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00026 #ifndef _DLDP_H
00027 #define _DLDP_H
00028
00029 #include "mpbarrett.h"
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00053 typedef struct
00054 {
00059 mpbarrett p;
00065 mpbarrett q;
00070 mpnumber r;
00077 mpnumber g;
00082 mpbarrett n;
00083 } dldp_p;
00084
00085 #ifdef __cplusplus
00086 extern "C" {
00087 #endif
00088
00089
00090
00091
00092
00093 BEECRYPTAPI
00094 int dldp_pInit(dldp_p*);
00095 BEECRYPTAPI
00096 int dldp_pFree(dldp_p*);
00097 BEECRYPTAPI
00098 int dldp_pCopy(dldp_p*, const dldp_p*);
00099
00100
00101
00102
00103
00104 BEECRYPTAPI
00105 int dldp_pPrivate(const dldp_p*, randomGeneratorContext*, mpnumber*);
00106 BEECRYPTAPI
00107 int dldp_pPublic (const dldp_p*, const mpnumber*, mpnumber*);
00108 BEECRYPTAPI
00109 int dldp_pPair (const dldp_p*, randomGeneratorContext*, mpnumber*, mpnumber*);
00110
00111
00112
00113
00114 BEECRYPTAPI
00115 int dldp_pEqual (const dldp_p*, const dldp_p*);
00116
00117
00118
00119
00120
00121 BEECRYPTAPI
00122 int dldp_pgoqMake (dldp_p*, randomGeneratorContext*, size_t, size_t, int);
00123 BEECRYPTAPI
00124 int dldp_pgoqMakeSafe (dldp_p*, randomGeneratorContext*, size_t);
00125 BEECRYPTAPI
00126 int dldp_pgoqGenerator(dldp_p*, randomGeneratorContext*);
00127 BEECRYPTAPI
00128 int dldp_pgoqValidate (const dldp_p*, randomGeneratorContext*, int);
00129
00130
00131
00132
00133
00134 BEECRYPTAPI
00135 int dldp_pgonMake (dldp_p*, randomGeneratorContext*, size_t, size_t);
00136 BEECRYPTAPI
00137 int dldp_pgonMakeSafe (dldp_p*, randomGeneratorContext*, size_t);
00138 BEECRYPTAPI
00139 int dldp_pgonGenerator(dldp_p*, randomGeneratorContext*);
00140 BEECRYPTAPI
00141 int dldp_pgonValidate (const dldp_p*, randomGeneratorContext*);
00142
00143 #ifdef __cplusplus
00144 }
00145 #endif
00146
00147 #endif