+/* Hash a string down to an encryption key. */
+void bluesky_crypt_hash_key(const char *keystr, uint8_t *out)
+{
+ guint8 raw_csum[32];
+ gsize csum_len = sizeof(raw_csum);
+
+ assert(CRYPTO_KEY_SIZE == 16);
+
+ GChecksum *csum = g_checksum_new(G_CHECKSUM_SHA256);
+ g_checksum_update(csum, (const guchar *)keystr, strlen(keystr));
+ g_checksum_get_digest(csum, raw_csum, &csum_len);
+ g_checksum_free(csum);
+
+ memcpy(out, raw_csum, CRYPTO_KEY_SIZE);
+}
+