Fix a typo in apps/pkcs12.c which was using the wrong part of
ASN1_TYPE (though they are both ASN1_STRING so it didn't cause any problems). Make 'siglen' an int in apps/dgst.c so we can check the return value of BIO_read() etc.
This commit is contained in:
parent
f4364e0730
commit
688fbf5475
10
apps/dgst.c
10
apps/dgst.c
@ -74,7 +74,7 @@
|
|||||||
#define PROG dgst_main
|
#define PROG dgst_main
|
||||||
|
|
||||||
void do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, char binout,
|
void do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, char binout,
|
||||||
EVP_PKEY *key, unsigned char *sigin, unsigned int siglen);
|
EVP_PKEY *key, unsigned char *sigin, int siglen);
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ int MAIN(int argc, char **argv)
|
|||||||
char out_bin = -1, want_pub = 0, do_verify = 0;
|
char out_bin = -1, want_pub = 0, do_verify = 0;
|
||||||
EVP_PKEY *sigkey = NULL;
|
EVP_PKEY *sigkey = NULL;
|
||||||
unsigned char *sigbuf = NULL;
|
unsigned char *sigbuf = NULL;
|
||||||
unsigned int siglen = 0;
|
int siglen = 0;
|
||||||
|
|
||||||
apps_startup();
|
apps_startup();
|
||||||
|
|
||||||
@ -280,7 +280,7 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
siglen = BIO_read(sigbio, sigbuf, siglen);
|
siglen = BIO_read(sigbio, sigbuf, siglen);
|
||||||
BIO_free(sigbio);
|
BIO_free(sigbio);
|
||||||
if(siglen == 0) {
|
if(siglen <= 0) {
|
||||||
BIO_printf(bio_err, "Error reading signature file %s\n",
|
BIO_printf(bio_err, "Error reading signature file %s\n",
|
||||||
sigfile);
|
sigfile);
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
@ -331,7 +331,7 @@ end:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, char binout,
|
void do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, char binout,
|
||||||
EVP_PKEY *key, unsigned char *sigin, unsigned int siglen)
|
EVP_PKEY *key, unsigned char *sigin, int siglen)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
int i;
|
int i;
|
||||||
@ -345,7 +345,7 @@ void do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, char binout,
|
|||||||
{
|
{
|
||||||
EVP_MD_CTX *ctx;
|
EVP_MD_CTX *ctx;
|
||||||
BIO_get_md_ctx(bp, &ctx);
|
BIO_get_md_ctx(bp, &ctx);
|
||||||
i = EVP_VerifyFinal(ctx, sigin, siglen, key);
|
i = EVP_VerifyFinal(ctx, sigin, (unsigned int)siglen, key);
|
||||||
if(i > 0) BIO_printf(out, "Verified OK\n");
|
if(i > 0) BIO_printf(out, "Verified OK\n");
|
||||||
else if(i == 0) BIO_printf(out, "Verification Failure\n");
|
else if(i == 0) BIO_printf(out, "Verification Failure\n");
|
||||||
else
|
else
|
||||||
|
@ -880,14 +880,14 @@ int print_attribs (BIO *out, STACK_OF(X509_ATTRIBUTE) *attrlst, char *name)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case V_ASN1_OCTET_STRING:
|
case V_ASN1_OCTET_STRING:
|
||||||
hex_prin(out, av->value.bit_string->data,
|
hex_prin(out, av->value.octet_string->data,
|
||||||
av->value.bit_string->length);
|
av->value.octet_string->length);
|
||||||
BIO_printf(out, "\n");
|
BIO_printf(out, "\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case V_ASN1_BIT_STRING:
|
case V_ASN1_BIT_STRING:
|
||||||
hex_prin(out, av->value.octet_string->data,
|
hex_prin(out, av->value.bit_string->data,
|
||||||
av->value.octet_string->length);
|
av->value.bit_string->length);
|
||||||
BIO_printf(out, "\n");
|
BIO_printf(out, "\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user