Don't use string literals for char arrays without NUL termination
unsigned char foo[4] = "abcd" is not valid C++ because the string literal "abcd" does not fit into foo due to the terminating NUL character. This is valid in C, it will just omit the NUL character. Fixes #962.
This commit is contained in:
parent
2cc3cfa583
commit
769528f307
@ -85,7 +85,7 @@ typedef struct {
|
|||||||
void* ndata;
|
void* ndata;
|
||||||
} secp256k1_schnorrsig_extraparams;
|
} secp256k1_schnorrsig_extraparams;
|
||||||
|
|
||||||
#define SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC "\xda\x6f\xb3\x8c"
|
#define SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC { 0xda, 0x6f, 0xb3, 0x8c }
|
||||||
#define SECP256K1_SCHNORRSIG_EXTRAPARAMS_INIT {\
|
#define SECP256K1_SCHNORRSIG_EXTRAPARAMS_INIT {\
|
||||||
SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC,\
|
SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC,\
|
||||||
NULL,\
|
NULL,\
|
||||||
|
@ -47,6 +47,8 @@ static void secp256k1_nonce_function_bip340_sha256_tagged_aux(secp256k1_sha256 *
|
|||||||
* by using the correct tagged hash function. */
|
* by using the correct tagged hash function. */
|
||||||
static const unsigned char bip340_algo[13] = "BIP0340/nonce";
|
static const unsigned char bip340_algo[13] = "BIP0340/nonce";
|
||||||
|
|
||||||
|
static const unsigned char schnorrsig_extraparams_magic[4] = SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC;
|
||||||
|
|
||||||
static int nonce_function_bip340(unsigned char *nonce32, const unsigned char *msg, size_t msglen, const unsigned char *key32, const unsigned char *xonly_pk32, const unsigned char *algo, size_t algolen, void *data) {
|
static int nonce_function_bip340(unsigned char *nonce32, const unsigned char *msg, size_t msglen, const unsigned char *key32, const unsigned char *xonly_pk32, const unsigned char *algo, size_t algolen, void *data) {
|
||||||
secp256k1_sha256 sha;
|
secp256k1_sha256 sha;
|
||||||
unsigned char masked_key[32];
|
unsigned char masked_key[32];
|
||||||
@ -194,7 +196,7 @@ int secp256k1_schnorrsig_sign_custom(const secp256k1_context* ctx, unsigned char
|
|||||||
|
|
||||||
if (extraparams != NULL) {
|
if (extraparams != NULL) {
|
||||||
ARG_CHECK(secp256k1_memcmp_var(extraparams->magic,
|
ARG_CHECK(secp256k1_memcmp_var(extraparams->magic,
|
||||||
SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC,
|
schnorrsig_extraparams_magic,
|
||||||
sizeof(extraparams->magic)) == 0);
|
sizeof(extraparams->magic)) == 0);
|
||||||
noncefp = extraparams->noncefp;
|
noncefp = extraparams->noncefp;
|
||||||
ndata = extraparams->ndata;
|
ndata = extraparams->ndata;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user