Add set_libsodium_key_easy(), fixes/refactorings
This commit is contained in:
parent
6b14d86822
commit
8d1dbead20
2 changed files with 14 additions and 3 deletions
|
@ -2103,16 +2103,25 @@ UDPC_PacketInfo UDPC_get_received(UDPC_HContext ctx, unsigned long *remaining) {
|
||||||
return UDPC::get_empty_pinfo();
|
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);
|
UDPC::Context *c = UDPC::verifyContext(ctx);
|
||||||
if(!c || !c->flags.test(2)) {
|
if(!c || !c->flags.test(2)) {
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::lock_guard<std::mutex> lock(c->mutex);
|
std::lock_guard<std::mutex> lock(c->mutex);
|
||||||
std::memcpy(c->sk, sk, crypto_sign_SECRETKEYBYTES);
|
std::memcpy(c->sk, sk, crypto_sign_SECRETKEYBYTES);
|
||||||
std::memcpy(c->pk, pk, crypto_sign_PUBLICKEYBYTES);
|
std::memcpy(c->pk, pk, crypto_sign_PUBLICKEYBYTES);
|
||||||
c->keysSet.store(true);
|
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) {
|
void UDPC_unset_libsodium_keys(UDPC_HContext ctx) {
|
||||||
|
|
|
@ -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);
|
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);
|
void UDPC_unset_libsodium_keys(UDPC_HContext ctx);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue