Skip to content

Commit eabd9bc

Browse files
committed
Allow initializing tagged sha256
This will be used by the schnorrsig module
1 parent 6fcb5b8 commit eabd9bc

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/hash_impl.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,19 @@ static void secp256k1_sha256_finalize(secp256k1_sha256 *hash, unsigned char *out
164164
memcpy(out32, (const unsigned char*)out, 32);
165165
}
166166

167+
/* Initializes a sha256 struct and writes the 64 byte string
168+
* SHA256(tag)||SHA256(tag) into it. */
169+
static void secp256k1_sha256_initialize_tagged(secp256k1_sha256 *hash, const unsigned char *tag, size_t taglen) {
170+
unsigned char buf[32];
171+
secp256k1_sha256_initialize(hash);
172+
secp256k1_sha256_write(hash, tag, taglen);
173+
secp256k1_sha256_finalize(hash, buf);
174+
175+
secp256k1_sha256_initialize(hash);
176+
secp256k1_sha256_write(hash, buf, 32);
177+
secp256k1_sha256_write(hash, buf, 32);
178+
}
179+
167180
static void secp256k1_hmac_sha256_initialize(secp256k1_hmac_sha256 *hash, const unsigned char *key, size_t keylen) {
168181
size_t n;
169182
unsigned char rkey[64];

0 commit comments

Comments
 (0)