static void generate_k_prepare(uint8_t V[32], uint8_t K[32], const uint8_t x[32], const uint8_t m[32]) {
  memset(V, 0x01, 32); // b.
  memset(K, 0x00, 32); // c.

  {
    uint8_t input[32+1+32+32];
    memcpy(input, V, 32);
    input[32] = 0x00;
    memcpy(input+32+1, x, 32);
    memcpy(input+32+1+32, m, 32);
    ecdsa_sha256_hmac(K, K, input, sizeof(input)); // d.
  }

  ecdsa_sha256_hmac(V, K, V, 32); // e.

  {
    uint8_t input[32+1+32+32];
    memcpy(input, V, 32);
    input[32] = 0x01;
    memcpy(input+32+1, x, 32);
    memcpy(input+32+1+32, m, 32);
    ecdsa_sha256_hmac(K, K, input, sizeof(input)); // f.
  }

  ecdsa_sha256_hmac(V, K, V, 32); // g.
}
static void generate_k_prepare(uint8_t V[32], uint8_t K[32], const uint8_t x[32], const uint8_t m[32]) {
  memset(V, 0x01, 32);  
  memset(K, 0x00, 32);  

  {
    uint8_t input[32+1+32+32];
    memcpy(input, V, 32);
    input[32] = 0x00;
    memcpy(input+32+1, x, 32);
    memcpy(input+32+1+32, m, 32);
    ecdsa_sha256_hmac(K, K, input, sizeof(input));  
  }

  ecdsa_sha256_hmac(V, K, V, 32);  

  {
    uint8_t input[32+1+32+32];
    memcpy(input, V, 32);
    input[32] = 0x01;
    memcpy(input+32+1, x, 32);
    memcpy(input+32+1+32, m, 32);
    ecdsa_sha256_hmac(K, K, input, sizeof(input));  
  }

  ecdsa_sha256_hmac(V, K, V, 32);  
}