Browse Source

1

nodeinfo-routing-update
jeka 1 month ago
parent
commit
a37d343410
  1. 15
      src/secure_channel.c

15
src/secure_channel.c

@ -823,27 +823,22 @@ sc_status_t sc_sha_transcode(const uint8_t *key, size_t key_len, uint8_t *data,
}
sc_status_t sc_obfuscate_pubkey(const uint8_t *salt, const uint8_t *peer_pubkey, const uint8_t *pubkey, uint8_t *output) {
if (!salt || !peer_pubkey || !pubkey || !output) {
return SC_ERR_INVALID_ARG;
}
if (!salt || !peer_pubkey || !pubkey || !output) return SC_ERR_INVALID_ARG;
uint8_t sha1[SC_HASH_SIZE];
uint8_t sha2[SC_HASH_SIZE];
uint8_t sha[SC_HASH_SIZE*2];
SC_SHA256_CTX ctx;
sc_sha256_init(&ctx);
sc_sha256_update(&ctx, salt, SC_PUBKEY_ENC_SALT_SIZE);
sc_sha256_update(&ctx, peer_pubkey, SC_PUBKEY_SIZE);
sc_sha256_final(&ctx, sha1);
sc_sha256_final(&ctx, sha);
sc_sha256_init(&ctx);
sc_sha256_update(&ctx, peer_pubkey, SC_PUBKEY_SIZE);
sc_sha256_update(&ctx, salt, SC_PUBKEY_ENC_SALT_SIZE);
sc_sha256_final(&ctx, sha2);
sc_sha256_final(&ctx, sha+SC_HASH_SIZE);
for (size_t i = 0; i < SC_PUBKEY_SIZE; i++) {
output[i] = pubkey[i] ^ sha1[i] ^ sha2[i];
}
for (size_t i = 0; i < SC_PUBKEY_SIZE; i++) output[i] = pubkey[i] ^ sha[i];
return SC_OK;
}

Loading…
Cancel
Save