]> Git Repo - secp256k1.git/commitdiff
Allow initializing tagged sha256
authorJonas Nick <[email protected]>
Thu, 14 Nov 2019 13:53:46 +0000 (13:53 +0000)
committerJonas Nick <[email protected]>
Sun, 6 Sep 2020 19:00:03 +0000 (19:00 +0000)
This will be used by the schnorrsig module

src/hash_impl.h

index 1985a07836daf2938332ab0588c614d7f3dab880..409772587bebb3a88976e129508165fba18593c5 100644 (file)
@@ -164,6 +164,19 @@ static void secp256k1_sha256_finalize(secp256k1_sha256 *hash, unsigned char *out
     memcpy(out32, (const unsigned char*)out, 32);
 }
 
+/* Initializes a sha256 struct and writes the 64 byte string
+ * SHA256(tag)||SHA256(tag) into it. */
+static void secp256k1_sha256_initialize_tagged(secp256k1_sha256 *hash, const unsigned char *tag, size_t taglen) {
+    unsigned char buf[32];
+    secp256k1_sha256_initialize(hash);
+    secp256k1_sha256_write(hash, tag, taglen);
+    secp256k1_sha256_finalize(hash, buf);
+
+    secp256k1_sha256_initialize(hash);
+    secp256k1_sha256_write(hash, buf, 32);
+    secp256k1_sha256_write(hash, buf, 32);
+}
+
 static void secp256k1_hmac_sha256_initialize(secp256k1_hmac_sha256 *hash, const unsigned char *key, size_t keylen) {
     size_t n;
     unsigned char rkey[64];
This page took 0.025878 seconds and 4 git commands to generate.