add calculate pk call
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user