Lines Matching defs:dsa
69 # include <openssl/dsa.h>
302 DSA *dsa = NULL;
307 dsa = DSA_new();
309 if (!dsa || !ret)
311 if (!read_lebn(&p, nbyte, &dsa->p))
313 if (!read_lebn(&p, 20, &dsa->q))
315 if (!read_lebn(&p, nbyte, &dsa->g))
318 if (!read_lebn(&p, nbyte, &dsa->pub_key))
321 if (!read_lebn(&p, 20, &dsa->priv_key))
324 if (!(dsa->pub_key = BN_new()))
329 if (!BN_mod_exp(dsa->pub_key, dsa->g, dsa->priv_key, dsa->p, ctx))
335 EVP_PKEY_set1_DSA(ret, dsa);
336 DSA_free(dsa);
342 if (dsa)
343 DSA_free(dsa);
454 static int check_bitlen_dsa(DSA *dsa, int ispub, unsigned int *magic);
457 static void write_dsa(unsigned char **out, DSA *dsa, int ispub);
465 bitlen = check_bitlen_dsa(pk->pkey.dsa, ispub, &magic);
498 write_dsa(&p, pk->pkey.dsa, ispub);
520 static int check_bitlen_dsa(DSA *dsa, int ispub, unsigned int *pmagic)
523 bitlen = BN_num_bits(dsa->p);
524 if ((bitlen & 7) || (BN_num_bits(dsa->q) != 160)
525 || (BN_num_bits(dsa->g) > bitlen))
528 if (BN_num_bits(dsa->pub_key) > bitlen)
532 if (BN_num_bits(dsa->priv_key) > 160)
591 static void write_dsa(unsigned char **out, DSA *dsa, int ispub)
594 nbyte = BN_num_bytes(dsa->p);
595 write_lebn(out, dsa->p, nbyte);
596 write_lebn(out, dsa->q, 20);
597 write_lebn(out, dsa->g, nbyte);
599 write_lebn(out, dsa->pub_key, nbyte);
601 write_lebn(out, dsa->priv_key, 20);