Add ECDSA_SIG_get0_r and ECDSA_SIG_get0_s. OpenSSL 1.1.1 added some more convenient versions of ECDSA_SIG_get0. Node.js uses them. Change-Id: I425e8a0c2e43c34130f30d902090b839f1a67186 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/40044 Commit-Queue: David Benjamin <davidben@google.com> Reviewed-by: David Benjamin <davidben@google.com>
diff --git a/crypto/fipsmodule/ecdsa/ecdsa.c b/crypto/fipsmodule/ecdsa/ecdsa.c index 38771d5..56d9f16 100644 --- a/crypto/fipsmodule/ecdsa/ecdsa.c +++ b/crypto/fipsmodule/ecdsa/ecdsa.c
@@ -122,6 +122,14 @@ OPENSSL_free(sig); } +const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig) { + return sig->r; +} + +const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig) { + return sig->s; +} + void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **out_r, const BIGNUM **out_s) { if (out_r != NULL) {
diff --git a/include/openssl/ecdsa.h b/include/openssl/ecdsa.h index d4d353e..9cd19a5 100644 --- a/include/openssl/ecdsa.h +++ b/include/openssl/ecdsa.h
@@ -106,6 +106,12 @@ // ECDSA_SIG_free frees |sig| its member |BIGNUM|s. OPENSSL_EXPORT void ECDSA_SIG_free(ECDSA_SIG *sig); +// ECDSA_SIG_get0_r returns the r component of |sig|. +OPENSSL_EXPORT const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig); + +// ECDSA_SIG_get0_s returns the s component of |sig|. +OPENSSL_EXPORT const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig); + // ECDSA_SIG_get0 sets |*out_r| and |*out_s|, if non-NULL, to the two // components of |sig|. OPENSSL_EXPORT void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **out_r,