- Bn = NULL;\r
-\r
- Dh = (DH *) DhContext;\r
- Dh->g = NULL;\r
- Dh->p = BN_new ();\r
- if (Dh->p == NULL) {\r
- goto Error;\r
- }\r
- \r
- Dh->g = BN_new ();\r
- if (Dh->g == NULL) {\r
- goto Error;\r
- }\r
-\r
- Bn = BN_bin2bn (Prime, (UINT32) (PrimeLength / 8), Dh->p);\r
- if (Bn == NULL) {\r
- goto Error;\r
- }\r
-\r
- if (BN_set_word (Dh->g, (UINT32) Generator) == 0) {\r
+ //\r
+ // Set the generator and prime parameters for DH object.\r
+ //\r
+ Dh = (DH *)DhContext;\r
+ BnP = BN_bin2bn ((const unsigned char *)Prime, (int)(PrimeLength / 8), NULL);\r
+ BnG = BN_bin2bn ((const unsigned char *)&Generator, 1, NULL);\r
+ if ((BnP == NULL) || (BnG == NULL) || !DH_set0_pqg (Dh, BnP, NULL, BnG)) {\r