Add set_libsodium_key_easy(), fixes/refactorings

This commit is contained in:
Stephen Seo 2019-11-27 19:41:38 +09:00
parent 6b14d86822
commit 8d1dbead20
2 changed files with 14 additions and 3 deletions

View file

@ -2103,16 +2103,25 @@ UDPC_PacketInfo UDPC_get_received(UDPC_HContext ctx, unsigned long *remaining) {
return UDPC::get_empty_pinfo();
}
void UDPC_set_libsodium_keys(UDPC_HContext ctx, unsigned char *sk, unsigned char *pk) {
int UDPC_set_libsodium_keys(UDPC_HContext ctx, unsigned char *sk, unsigned char *pk) {
UDPC::Context *c = UDPC::verifyContext(ctx);
if(!c || !c->flags.test(2)) {
return;
return 0;
}
std::lock_guard<std::mutex> lock(c->mutex);
std::memcpy(c->sk, sk, crypto_sign_SECRETKEYBYTES);
std::memcpy(c->pk, pk, crypto_sign_PUBLICKEYBYTES);
c->keysSet.store(true);
return 1;
}
int UDPC_set_libsodium_key_easy(UDPC_HContext ctx, unsigned char *sk) {
unsigned char pk[crypto_sign_PUBLICKEYBYTES];
if(crypto_sign_ed25519_sk_to_pk(pk, sk) != 0) {
return 0;
}
return UDPC_set_libsodium_keys(ctx, sk, pk);
}
void UDPC_unset_libsodium_keys(UDPC_HContext ctx) {

View file

@ -184,7 +184,9 @@ UDPC_Event UDPC_get_event(UDPC_HContext ctx, unsigned long *remaining);
UDPC_PacketInfo UDPC_get_received(UDPC_HContext ctx, unsigned long *remaining);
void UDPC_set_libsodium_keys(UDPC_HContext ctx, unsigned char *sk, unsigned char *pk);
int UDPC_set_libsodium_keys(UDPC_HContext ctx, unsigned char *sk, unsigned char *pk);
int UDPC_set_libsodium_key_easy(UDPC_HContext ctx, unsigned char *sk);
void UDPC_unset_libsodium_keys(UDPC_HContext ctx);