Home | History | Annotate | Download | only in pem

Lines Matching defs:dsa

67 #include <openssl/dsa.h>
114 /* Convert private key blob to EVP_PKEY: RSA and DSA keys supported */
316 DSA *dsa = NULL;
321 dsa = DSA_new();
323 if (!dsa || !ret)
325 if (!read_lebn(&p, nbyte, &dsa->p))
327 if (!read_lebn(&p, 20, &dsa->q))
329 if (!read_lebn(&p, nbyte, &dsa->g))
333 if (!read_lebn(&p, nbyte, &dsa->pub_key))
338 if (!read_lebn(&p, 20, &dsa->priv_key))
341 if (!(dsa->pub_key = BN_new()))
346 if (!BN_mod_exp(dsa->pub_key, dsa->g,
347 dsa->priv_key, dsa->p, ctx))
353 EVP_PKEY_set1_DSA(ret, dsa);
354 DSA_free(dsa);
360 if (dsa)
361 DSA_free(dsa);
479 static int check_bitlen_dsa(DSA *dsa, int ispub, unsigned int *magic);
482 static void write_dsa(unsigned char **out, DSA *dsa, int ispub);
491 bitlen = check_bitlen_dsa(pk->pkey.dsa, ispub, &magic);
528 write_dsa(&p, pk->pkey.dsa, ispub);
550 static int check_bitlen_dsa(DSA *dsa, int ispub, unsigned int *pmagic)
553 bitlen = BN_num_bits(dsa->p);
554 if ((bitlen & 7) || (BN_num_bits(dsa->q) != 160)
555 || (BN_num_bits(dsa->g) > bitlen))
559 if (BN_num_bits(dsa->pub_key) > bitlen)
565 if (BN_num_bits(dsa->priv_key) > 160)
629 static void write_dsa(unsigned char **out, DSA *dsa, int ispub)
632 nbyte = BN_num_bytes(dsa->p);
633 write_lebn(out, dsa->p, nbyte);
634 write_lebn(out, dsa->q, 20);
635 write_lebn(out, dsa->g, nbyte);
637 write_lebn(out, dsa->pub_key, nbyte);
639 write_lebn(out, dsa->priv_key, 20);