00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include "system.h"
00031 #include "dlkp.h"
00032 #include "debug.h"
00033
00034 int dlkp_pPair(dlkp_p* kp, randomGeneratorContext* rgc, const dldp_p* param)
00035 {
00036
00037 if (dldp_pCopy(&kp->param, param) < 0)
00038 return -1;
00039
00040 if (dldp_pPair(param, rgc, &kp->x, &kp->y) < 0)
00041 return -1;
00042
00043 return 0;
00044 }
00045
00046 int dlkp_pInit(dlkp_p* kp)
00047 {
00048 if (dldp_pInit(&kp->param) < 0)
00049 return -1;
00050
00051 mp32nzero(&kp->y);
00052 mp32nzero(&kp->x);
00053
00054 return 0;
00055 }
00056
00057 int dlkp_pFree(dlkp_p* kp)
00058 {
00059
00060 if (dldp_pFree(&kp->param) < 0)
00061 return -1;
00062
00063 mp32nfree(&kp->y);
00064 mp32nfree(&kp->x);
00065
00066 return 0;
00067
00068 }
00069
00070 int dlkp_pCopy(dlkp_p* dst, const dlkp_p* src)
00071 {
00072 if (dldp_pCopy(&dst->param, &src->param) < 0)
00073 return -1;
00074
00075 mp32ncopy(&dst->y, &src->y);
00076 mp32ncopy(&dst->x, &src->x);
00077
00078 return 0;
00079 }