static int pkey_gost01_cp_verify(EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen, const unsigned char *tbs, size_t tbs_len) { int ok = 0; EVP_PKEY* pub_key = EVP_PKEY_CTX_get0_pkey(ctx); DSA_SIG *s=unpack_cp_signature(sig,siglen); if (!s) return 0; #ifdef DEBUG_SIGN fprintf(stderr,"R="); BN_print_fp(stderr,s->r); fprintf(stderr,"\nS="); BN_print_fp(stderr,s->s); fprintf(stderr,"\n"); #endif if (pub_key) ok = gost2001_do_verify(tbs,tbs_len,s,EVP_PKEY_get0(pub_key)); DSA_SIG_free(s); return ok; }
static int pkey_gost01_cp_verify(EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen, const unsigned char *tbs, size_t tbs_len) { int ok = 0; EVP_PKEY* pub_key = EVP_PKEY_CTX_get0_pkey(ctx); DSA_SIG *s=unpack_cp_signature(sig,siglen); if (!s) return 0; #ifdef DEBUG_SIGN TINYCLR_SSL_FPRINTF(OPENSSL_TYPE__FILE_STDERR,"R="); BN_print_fp(OPENSSL_TYPE__FILE_STDERR,s->r); TINYCLR_SSL_FPRINTF(OPENSSL_TYPE__FILE_STDERR,"\nS="); BN_print_fp(OPENSSL_TYPE__FILE_STDERR,s->s); TINYCLR_SSL_FPRINTF(OPENSSL_TYPE__FILE_STDERR,"\n"); #endif if (pub_key) ok = gost2001_do_verify(tbs,tbs_len,s,(EC_KEY*)EVP_PKEY_get0(pub_key)); DSA_SIG_free(s); return ok; }