Add missing ECDSA_SIG getter/settter for libssh2.

This commit is contained in:
Hayden Roche
2021-08-13 19:27:11 -07:00
parent b2380069f0
commit 63d1bd13d4
2 changed files with 37 additions and 0 deletions

View File

@ -37063,6 +37063,37 @@ WOLFSSL_ECDSA_SIG *wolfSSL_ECDSA_SIG_new(void)
return sig;
}
void wolfSSL_ECDSA_SIG_get0(const WOLFSSL_ECDSA_SIG* sig,
const WOLFSSL_BIGNUM** r, const WOLFSSL_BIGNUM** s)
{
if (sig == NULL) {
return;
}
if (r != NULL) {
*r = sig->r;
}
if (s != NULL) {
*s = sig->s;
}
}
int wolfSSL_ECDSA_SIG_set0(WOLFSSL_ECDSA_SIG* sig, WOLFSSL_BIGNUM* r,
WOLFSSL_BIGNUM* s)
{
if (sig == NULL || r == NULL || s == NULL) {
return WOLFSSL_FAILURE;
}
wolfSSL_BN_free(sig->r);
wolfSSL_BN_free(sig->s);
sig->r = r;
sig->s = s;
return WOLFSSL_SUCCESS;
}
/* return signature structure on success, NULL otherwise */
WOLFSSL_ECDSA_SIG *wolfSSL_ECDSA_do_sign(const unsigned char *d, int dlen,
WOLFSSL_EC_KEY *key)

View File

@ -46,6 +46,10 @@ struct WOLFSSL_ECDSA_SIG {
WOLFSSL_API void wolfSSL_ECDSA_SIG_free(WOLFSSL_ECDSA_SIG *sig);
WOLFSSL_API WOLFSSL_ECDSA_SIG *wolfSSL_ECDSA_SIG_new(void);
WOLFSSL_API void wolfSSL_ECDSA_SIG_get0(const WOLFSSL_ECDSA_SIG*,
const WOLFSSL_BIGNUM**, const WOLFSSL_BIGNUM**);
WOLFSSL_API int wolfSSL_ECDSA_SIG_set0(WOLFSSL_ECDSA_SIG*, WOLFSSL_BIGNUM*,
WOLFSSL_BIGNUM*);
WOLFSSL_API WOLFSSL_ECDSA_SIG *wolfSSL_ECDSA_do_sign(const unsigned char *dgst,
int dgst_len,
WOLFSSL_EC_KEY *eckey);
@ -62,6 +66,8 @@ WOLFSSL_API int wolfSSL_i2d_ECDSA_SIG(const WOLFSSL_ECDSA_SIG *sig,
#define ECDSA_SIG_free wolfSSL_ECDSA_SIG_free
#define ECDSA_SIG_new wolfSSL_ECDSA_SIG_new
#define ECDSA_SIG_get0 wolfSSL_ECDSA_SIG_get0
#define ECDSA_SIG_set0 wolfSSL_ECDSA_SIG_set0
#define ECDSA_do_sign wolfSSL_ECDSA_do_sign
#define ECDSA_do_verify wolfSSL_ECDSA_do_verify
#define d2i_ECDSA_SIG wolfSSL_d2i_ECDSA_SIG