version 1.3, 2000/04/12 09:39:10 |
version 1.4, 2000/04/14 10:30:31 |
|
|
in = BIO_new(BIO_s_file()); |
in = BIO_new(BIO_s_file()); |
if (in == NULL) |
if (in == NULL) |
fatal("BIO_new failed"); |
fatal("BIO_new failed"); |
if (BIO_read_filename(in, filename) <= 0) |
if (BIO_read_filename(in, filename) <= 0) |
fatal("BIO_read failed %s: %s", filename, strerror(errno)); |
fatal("BIO_read failed %s: %s", filename, strerror(errno)); |
fprintf(stderr, "read DSA private key\n"); |
fprintf(stderr, "read DSA private key\n"); |
dsa = PEM_read_bio_DSAPrivateKey(in,NULL,NULL,NULL); |
dsa = PEM_read_bio_DSAPrivateKey(in,NULL,NULL,NULL); |
|
|
|
|
sig = DSA_do_sign(digest, evp_md->md_size, key->dsa); |
sig = DSA_do_sign(digest, evp_md->md_size, key->dsa); |
|
|
rlen = BN_num_bytes(sig->r); |
rlen = BN_num_bytes(sig->r); |
slen = BN_num_bytes(sig->s); |
slen = BN_num_bytes(sig->s); |
if (rlen > INTBLOB_LEN || slen > INTBLOB_LEN) { |
if (rlen > INTBLOB_LEN || slen > INTBLOB_LEN) { |
error("bad sig size %d %d", rlen, slen); |
error("bad sig size %d %d", rlen, slen); |
DSA_SIG_free(sig); |
DSA_SIG_free(sig); |
return -1; |
return -1; |