add calculate pk call

This commit is contained in:
2024-05-06 15:43:49 +02:00
parent 58a94b3a6c
commit 263829d55b

View File

@@ -17,7 +17,7 @@ inline fn extract_ipc_id(reg u64 sync_mem) -> reg u64 {
return id;
}
inline fn generate_key(reg u64 shared_mem sync_mem private_mem, stack u64 key_id) -> stack u64 {
inline fn generate_keypair(reg u64 shared_mem sync_mem private_mem, stack u64 key_id) -> stack u64 {
inline int i;
stack u8[32] key;
reg u64 addr idptr pkptr;
@@ -49,6 +49,19 @@ inline fn generate_key(reg u64 shared_mem sync_mem private_mem, stack u64 key_id
return key_id;
}
inline fn calculate_pubkey(reg u64 shared_mem sync_mem private_mem) {
reg u64 skptr outptr;
skptr = extract_nth_ptr(sync_mem, shared_mem, 0);
outptr = extract_nth_ptr(sync_mem, shared_mem, 1);
skptr = (u64)[skptr];
skptr *= 32;
skptr += private_mem;
jade_scalarmult_curve25519_amd64_mulx_base(outptr, skptr);
}
inline fn x25519(reg u64 shared_mem sync_mem private_mem) {
reg u64 outptr idptr pkptr keyptr;
reg u64 keyid;
@@ -83,10 +96,14 @@ export fn agent_start(reg u64 shared_mem sync_mem private_mem) {
id = extract_ipc_id(sync_mem);
if (id == 0) {
key_id = generate_key(shared_mem, sync_mem, private_mem, key_id);
key_id = generate_keypair(shared_mem, sync_mem, private_mem, key_id);
} else {
if (id == 1) {
x25519(shared_mem, sync_mem, private_mem);
calculate_pubkey(shared_mem, sync_mem, private_mem);
} else {
if (id == 2) {
x25519(shared_mem, sync_mem, private_mem);
}
}
}